저는 이미 구축된 공유 라이브러리에서 작업 중입니다.
실행하면 cmake -C $ILCSOFT/ILCSoft.cmake
어느 시점에서 출력이 표시됩니다.
-- Check for FastJet (3.1.2)
-- Check for FastJet_LIBRARIES: fastjet
-- Check for FastJet_FASTJET_LIBRARY: /cvmfs/foo...bar/FastJet/3.1.2/lib/libfastjet.so -- ok
...
CMAKE_PREFIX_PATH =
-- /cvmfs/foo...bar/v01-17-09/FastJet/3.1.2;
make install
하지만 cc 파일을 실행하면 실패합니다 #include "fastjet/ClusterSequence.hh"
.
이는 cmake를 올바르게 설정하지 않았음을 의미합니다. 이제 내에서 다음을 수행하여 fastjet 종속성을 추가하려고 합니다 CMakeLists.txt
.
FIND_PACKAGE( FastJet )
LINK_LIBRARIES( FastJet_LIBRARY )
오류는 발생하지 않지만 원하는 것을 가져올 수 없습니다.
cmake, make 및 cpp 가져오기를 이해하지 못하는 것 같습니다. 누구든지 나를 도와줄 수 있나요?
이렇게 큰 라이브러리를 내 cmake로 어떻게 가져올 수 있나요?
답변1
포함 단계에서 문제가 발생하면 컴파일된 라이브러리의 실제 위치가 아니라 문제가 있는 포함 디렉터리를 찾습니다. ~에서cmake 문서, 라이브러리 헤더가 있는 위치를 추가해 보세요.
디렉토리 포함
빌드에 포함 디렉터리를 추가합니다.
include_directories([이후|이전] [시스템] dir1 [dir2 ...])
포함 파일을 검색하기 위해 컴파일러에서 사용하는 디렉터리에 지정된 디렉터리를 추가합니다. 상대 경로는 현재 소스 디렉터리를 기준으로 해석됩니다.