Я занимаюсь этой проблемой в течение нескольких недель. Я знаю, что я, вероятно, просто пропустил незначительный шаг, о котором я не знаю. Таким образом, любое понимание будет высоко оценено.Добавить внешнюю библиотеку (например, Eigen) через CMake
Я пытаюсь добавить некоторые внешние библиотеки и использовать их в своем проекте на C++. Но, похоже, они не могут понять, как это сделать. Я прочитал все сообщения в Интернете о добавлении внешней библиотеки, но я считаю, что мне что-то не хватает!
Предположим, я хочу добавить простую библиотеку, такую как Eigen (библиотека только для заголовка). Я копирую и вставляю папку, содержащую все файлы в подпапке в моем проекте. Я назвал подпапку ThirdPartyLibraries.
INCLUDE_DIRECTORIES("${MAINFOLDER}/ThirdPartyLibraries/eigen")
Есть ли что-нибудь еще, что мне нужно сделать?
Теперь предположим, что я хочу добавить еще одну библиотеку, такую как XGBoost (которая имеет как заголовок, так и исходные файлы). Как это будет иначе?
Я сделал аналогичные вещи для XGBoost. Мой код может создаваться без ошибок, но это пока я не ссылаюсь ни на одну из функций в библиотеке (в основном просто добавляя библиотеку к моему проекту, не используя ее). Когда я пытаюсь использовать любую из функций, я получаю ошибки в отношении «неразрешенных внешних символов», которые заставляют меня думать, что я что-то пропускаю при добавлении библиотек.
Я не добавлял какие-либо библиотеки в свой код на C++. Итак, если вы можете просто объяснить простые объяснения, это было бы здорово!
'Я получаю ошибки в отношении« неразрешенных внешних символов », из-за чего я думаю, что я что-то пропускаю при добавлении библиотек». - вы пропустите вызов [target_link_libraries] (https://cmake.org/cmake/help/ v3.0/команда/target_link_libraries.html). – Tsyvarev
Спасибо. В этом есть смысл. Какой файл мне нужно настроить? Я не могу найти файл .os или .dll. –
'Я не могу найти файл .os или .dll.' - Так что вам нужно собрать библиотеку для нее. – Tsyvarev