我正在尝试使用VisualGDB对运行Raspbian lite的RaspberryPi 3进行OpenGLES2.0示例HelloTriangle的交叉编译。
我认为我能够在我的libbrcmEGL.so
文件中正确包含库libbrcmGLESv2.so
和CMakeLists.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中缺少的内容
答案 0 :(得分:0)
变更为target_link_libraries(HelloTriangle ${CMAKE_CURRENT_SOURCE_DIR}/lib/libbrcmGLESv2.so ${CMAKE_CURRENT_SOURCE_DIR}/lib/libbrcmEGL.so "${LIBRARIES_FROM_REFERENCES}")
,并将其汇编