Ubuntu 16.04 x86_64에서 GLFW3 라이브러리를 사용하는 프로그램을 컴파일하려고합니다. 나는 설치 libglfw3
하고 libglfw3-dev
포장했다. 다음으로 다음과 같이 썼습니다 CMakeLists.txt
.
cmake_minimum_required (VERSION 2.6)
project (Test)
set (CMAKE_CXX_FLAGS "-lGL -lGLEW")
set (CMAKE_EXE_LINKER_FLAGS -lglfw )
add_executable(Test src/main.cpp)
그리고 main.cpp :
#include <stdio.h>
#include <stdlib.h>
#include <GL/glew.h>
#include <GLFW/glfw3.h>
int main() {
if (!glfwInit()) {
return -1;
}
glfwTerminate();
return 0;
}
하지만 make
명령 에서 오류가 발생합니다 .
main.cpp:(.text+0x5): undefined reference to `glfwInit'
main.cpp:(.text+0x1a): undefined reference to `glfwTerminate'
collect2: error: ld returned 1 exit status
CMakeFiles/Test.dir/build.make:94: recipe for target 'Test' failed
make[2]: *** [Test] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/Test.dir/all' failed
make[1]: *** [CMakeFiles/Test.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
내가 뭘 잘못하고 있니? GLFW3를 찾을 수없는 이유는 무엇입니까?
CMake에서 라이브러리와 연결하는 기본 방법은 target_link_libraries입니다 .
cmake_minimum_required (VERSION 2.6)
project (Test)
add_executable(Test src/main.cpp)
target_link_libraries(Test GL GLEW glfw)
이것은 컴파일러와 링커에 알려진 기본 위치에 GL 및 기타 라이브러리가 설치된 경우에만 작동합니다. 그렇지 않으면 @tambre에서 언급 한대로 find_package (GLEW) 및 기타 find_package()
호출 을 사용하는 것이 좋습니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다