20160614 :CMake가 osx 바로 아래에서 glfw를 연결하지 않습니다.
저는 MacPorts에서 glfw를 설치했습니다. sudo port install glfw
그리고 /opt/local/lib/libglfw.dylib가 있는지 확인했습니다.
#include <GLFW/glfw3.h>
내 CMakeLists.txt (파일 1) :
cmake_minimum_required (VERSION 2.8)
project (t1)
include_directories(/opt/local/include)
link_directories(/opt/local/lib)
# find_library(MYGLFWLIB NAMES glfw HINTS /opt/local/lib NO_DEFAULT_PATH)
set(GLLIBS GL glfw glew)
add_executable(t1 main.cpp)
target_link_libraries(t1 ${GLLIBS})
오류가, 내가 그런 ./t1
에 의해 실행되지 것으로보고있다 cmake . && make
을 한 후 여기에
dyld: Library not loaded: lib/libglfw.3.dylib
Referenced from: /Users/...../t1
Reason: image not found
[1] 13949 trace trap ./t1
가 그럼 난를 사용는 T1에서 LIB dependens을 확인
/opt/local/lib/libGL.1.dylib (compatibility version 4.0.0, current version 4.0.0)
lib/libglfw.3.dylib (compatibility version 3.0.0, current version 3.2.0)
/opt/local/lib/libGLEW.1.13.0.dylib (compatibility version 1.13.0, current version 1.13.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
glfw 바르게 연결되지 않는 이유
누군가가 말해 주시겠습니까?
20160615 :
내 CMakeLists.txt (파일 2)을 수정 한 후 :
cmake_minimum_required (VERSION 2.8)
project (t1)
include_directories(/opt/local/include)
link_directories(/opt/local/lib)
find_library(GL_LIB GL HINTS /opt/local/lib)
find_library(GLFW_LIB glfw HINTS /opt/local/lib)
find_library(GLEW_LIB glew HINTS /opt/local/lib)
message(${GLFW_LIB})
message(${GLEW_LIB})
message(${GL_LIB})
add_executable(t1 main.cpp)
target_link_libraries(t1 ${GL_LIB} ${GLFW_LIB} ${GLEW_LIB})
나는 (MacMini와 맥북 프로), MacPorts를하고 엑스 코드와 CMake 및 시스템의 버전이 모두 두 OSX 장치가 같은 :
맥 OS X : 10.11.5 MacPorts를 2.3.4 CMake : 3.5.2 엑스 코드 : 7.3
,536,CMakeLists (위의 file1과 file2)의 두 버전 모두 MacMini에서 작동하며 링커가 정상적으로 작동합니다. 하지만 내 MacBookPro에 연결하면 glfw가 잘 연결되지 않습니다.
macports-cmake-make-dyld-library-not-loaded
이 문제를 시스템 변수가
을 우려하고있다 : 다른누군가가 거의 같은 문제가 발생했다?
귀하의 조언에 따라, 나는 libglfw을 찾기 위해'find_library'를 사용
이 문서에 보라 사용합니다. dylib 경로. 'find_library (GLFW_LIB glfw 힌트/opt/local/lib)'. 메시지'으로 ($ {GLFW_LIB})', cmake /opt/loca/lib/libglfw.dylib에있는,하지만 여전히 생성 된 바이너리 파일 오류보고 glfw lib 디렉토리 검색 : dyld을 : 도서관로드되지를 : LIB /libglfw.3.dylib – everdingfind_library
또는'GLFW_LIBRARIES'의 값을 출력하기 위해'message'를 사용하십시오. CMakeCache.txt 파일을 삭제할 수도 있습니다. – usr1234567
관련없는 파일 (CMakeCache.txt ...)을 삭제하는 방법이 시도되었지만 기적이 발생하지 않았습니다. 'message'에 의해 GLFW_LIB가 올바르다는 것을 알 수 있습니다 : /opt/local/lib/libglfw.3.dylib하지만, 바이너리가되면 뭔가 잘못되었습니다. 나는 진짜로 차이를 만드는 무슨을 알고 싶다. – everding