나는이 문제를 몇 주 동안 처리해 왔습니다. 나는 내가 알지 못하는 사소한 단계를 놓치고있을 뿐이라는 것을 알고있다. 그래서, 어떤 통찰력이 높게 평가 될 것입니다.CMake를 통해 외부 라이브러리 (예 : Eigen) 추가
일부 외부 라이브러리를 추가하고 C++ 프로젝트에서 사용하려고합니다. 그러나 방법을 이해할 수있을 것 같지 않습니다. 나는 외부 라이브러리를 추가하는 것에 관한 인터넷의 모든 게시물을 읽었지만 나는 무엇인가 놓치고 있다고 생각한다!
예를 들어, Eigen (헤더 전용 라이브러리)과 같은 간단한 라이브러리를 추가하고 싶습니다. 내 프로젝트의 하위 폴더에있는 모든 파일이 들어있는 폴더를 복사하여 붙여 넣습니다. 서브 팜 ThirdPartyLibraries라고 불렀습니다.
INCLUDE_DIRECTORIES("${MAINFOLDER}/ThirdPartyLibraries/eigen")
내가해야 할 다른 것이 있습니까?
이제 XGBoost (헤더와 소스 파일을 모두 가지고 있음)와 같은 다른 라이브러리를 추가하고 싶다고합시다. 어떻게 다른가?
나는 XGBoost와 비슷한 것들을했습니다. 내 코드는 오류없이 빌드 될 수 있지만, 라이브러리의 함수를 참조하지 않는 한 (기본적으로 라이브러리를 사용하지 않고 프로젝트에 라이브러리를 추가하는 것만 큼). 함수 중 하나를 사용하려고하면 라이브러리를 추가하는 동안 뭔가 빠졌다고 생각하는 "해결되지 않은 외부 기호"에 대한 오류가 발생합니다.
내 C++ 코드에 라이브러리를 추가하지 않았습니다. 그래서, 당신이 설명을 간단하게 유지할 수 있다면, 좋을 것입니다!
'라이브러리를 추가하는 동안 무언가를 놓치고 있다고 생각되는 "해결되지 않은 외부 심볼"에 대해 오류가 발생합니다. - [target_link_libraries] (https://cmake.org/cmake/help/) 호출이 필요합니다. v3.0/command/target_link_libraries.html). – Tsyvarev
감사. 그건 의미가 있습니다. 목표로 설정해야하는 파일은 무엇입니까? .os 또는 .dll 파일을 찾을 수 없습니다. –
'.os 또는 .dll 파일을 찾을 수 없습니다. '- 그래서 라이브러리를 빌드해야합니다. – Tsyvarev