Нет правила для создания цели `libbrcmEGL.so ', необходимого для` HelloTriangle' - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь выполнить кросс-компиляцию примера HelloTriangle с OpenGLES2.0, используя VisualGDB для RaspberryPi 3, на котором работает Raspbian lite.

Я предполагаю, что смог правильно включить библиотеки 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}")

Я также проверил наличие этих библиотек в моем системном корне в:

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

Я все еще получаю ту же ошибку:

Мне нужна помощь, чтобы выяснить, чего не хватает в моем CMakeLists.txt

1 Ответ

0 голосов
/ 29 января 2019

Изменено на target_link_libraries(HelloTriangle ${CMAKE_CURRENT_SOURCE_DIR}/lib/libbrcmGLESv2.so ${CMAKE_CURRENT_SOURCE_DIR}/lib/libbrcmEGL.so "${LIBRARIES_FROM_REFERENCES}") и оно скомпилировано

...