没有规则来建立目标“ libbrcmEGL.so”,而“ HelloTriangle”则需要

时间:2019-01-25 00:28:52

标签: c++ linux opengl-es raspberry-pi raspbian

我正在尝试使用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中缺少的内容

1 个答案:

答案 0 :(得分:0)

变更为target_link_libraries(HelloTriangle ${CMAKE_CURRENT_SOURCE_DIR}/lib/libbrcmGLESv2.so ${CMAKE_CURRENT_SOURCE_DIR}/lib/libbrcmEGL.so "${LIBRARIES_FROM_REFERENCES}"),并将其汇编