CMake에서 "link_directories"를 사용하여 라이브러리를 찾는 데 어려움을 겪음
CMake의 "link_directories"를 사용하여 공유 라이브러리 libprotobuf.so를 연결하려고 할 때 명령을 실행하면 라이브러리의 함수에 대한 정의되지 않은 참조를 나타내는 링커 오류가 사용자에게 발생합니다. 지정된 디렉터리에 라이브러리가 있음에도 불구하고 CMake가 해당 디렉터리를 찾지 못합니다.
해결책
이 문제는 CMake 명령이 디렉터리 내에 배치되는 순서에서 비롯됩니다. CMakeLists.txt 파일입니다. "link_directories" 명령은 "target_link_libraries" 명령보다 "add_executable" 명령 이전에 호출해야 합니다.
설명
"add_executable"은 실행 가능한 대상을 생성하고 "link_directories"는 검색해야 하는 디렉터리를 지정합니다. 공유 라이브러리의 경우. "add_executable" 명령 뒤에 "link_directories" 명령을 배치하면 실행 파일을 연결하려고 할 때 CMake가 라이브러리를 찾을 수 없습니다.
Modified CMakeLists.txt
link_directories(/usr/lib/x86_64-linux-gnu) add_executable(test main.cpp) target_link_libraries(test protobuf)
명령 순서가 수정되면 CMake는 libprotobuf.so 라이브러리를 성공적으로 찾고 링커는 더 이상 정의되지 않은 참조 오류가 발생합니다.
위 내용은 `link_directories`를 사용할 때 CMake가 내 공유 라이브러리를 찾지 못하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!