0

我正在尝试使用 VisualGDB 为运行 Raspbian lite 的 RaspberryPi 3 交叉编译 OpenGLES2.0 示例 HelloTriangle。

我假设我能够将库正确地包含在我的libbrcmEGL.so文件中,因为没有给我这些错误:libbrcmGLESv2.soCMakeLists.txt

c:/sysgcc/raspberry/bin/../lib/gcc/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld.exe: cannot find -lLIBGLES
c:/sysgcc/raspberry/bin/../lib/gcc/arm-linux-gnueabihf/6/../../../../arm-linux-gnueabihf/bin/ld.exe: cannot find -lLIBEGL`

它给了我这些错误

make[2]: *** No rule to make target `libbrcmEGL.so', needed by `HelloTriangle'.  Stop.`

这是我的 CMakeLists 文件:

cmake_minimum_required(VERSION 2.7)
project(HelloTriangle)
set(LIBRARIES_FROM_REFERENCES "")
add_executable(HelloTriangle HelloTriangle.cpp esShapes.c esTransform.c esUtil.c esShader.c)
include_directories(include)
target_link_libraries(HelloTriangle ${CMAKE_BINARY_DIR}/libbrcmGLESv2.so ${CMAKE_BINARY_DIR}/libbrcmEGL.so "${LIBRARIES_FROM_REFERENCES}")

我不明白制作目标还需要什么。环顾堆栈溢出,我看到了要添加的建议

LINK_DIRECTORIES(/opt/vc/lib/)

我也试过

target_link_libraries(HelloTriangle /opt/vc/lib/libbrcmGLESv2.so /opt/vc/lib/libbrcmEGL.so "${LIBRARIES_FROM_REFERENCES}")

我还检查了我的 sysroot 中是否有这些库:

C:\SysGCC\raspberry\arm-linux-gnueabihf\sysroot

我仍然得到同样的错误:

我需要一些帮助来弄清楚我的 CMakeLists.txt 中缺少什么

4

1 回答 1

0

更改为target_link_libraries(HelloTriangle ${CMAKE_CURRENT_SOURCE_DIR}/lib/libbrcmGLESv2.so ${CMAKE_CURRENT_SOURCE_DIR}/lib/libbrcmEGL.so "${LIBRARIES_FROM_REFERENCES}")并编译

于 2019-01-29T20:23:02.653 回答