Я использую CMake для создания make-файла для компиляции проекта C++, который использует библиотеки boost, eigen и mysqlclient. Во время make-кода код, похоже, компилируется ОК, но затем на этапе компоновки я получаю сообщение об ошибке «ld: library не найден для -lmysqlclient». У меня есть строка target_link_libraries (my_executable mysqlclient) в моем файле CMakeLists.txt. Когда я удаляю эту строку, я больше не получаю это сообщение об ошибке, но затем получаю длинный список неопределенных ошибок символов (все они связаны с mysql). Проект строит ОК в Xcode, поэтому я знаю, что на моей машине настроены, по крайней мере, клиентские библиотеки mysql. Любые советы, предложения?CMake не может найти библиотеку mysqlclient
0
A
ответ
1
Вы хотите использовать FindMySQL.make
пакет из Kitware (сохранить файл здесь: https://cmake.org/Wiki/CMakeUserFindMySQL, как ${CMAKE_SOURCE_DIR}/cmake/FindMySQL.cmake
), а затем найти библиотеку:
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
find_package(MySQL)
Наконец, ваш шаг звено в CMake следует заменить
target_link_library(myexecutable ${MYSQL_LIBRARY})
${MYSQL_LIBRARY}
должен содержать полный путь к файлу библиотеки, который вы хотите связать с
Смежные вопросы
- 1. CMake не может найти требуемую библиотеку
- 2. CMake не может найти библиотеку в зависимости
- 3. Cmake не может найти библиотеку, используя «link_directories»
- 4. CMake не может найти внешнюю библиотеку
- 5. cygwin cmake не может найти форматированную библиотеку
- 6. CMake не может найти отладочную библиотеку
- 7. Cmake не может найти форматированную библиотеку
- 8. Qt Creator не может найти библиотеку с шагом пользовательских Cmake
- 9. Как найти библиотеку с cmake?
- 10. CMake не удалось найти библиотеку OpenSSL
- 11. cmake: не удается найти библиотеку с find_package
- 12. CMake не удается найти статическую библиотеку
- 13. CMake не может найти QXmlSimpleReader
- 14. CMake не может найти OpenMP
- 15. CMake не может найти FindGLEW.cmake
- 16. Hudson не может найти cmake
- 17. cmake не может найти LibXml2
- 18. CMake не может найти QWidgets
- 19. CMake не может найти QtCore
- 20. CMake не может найти glib2
- 21. Cmake не может найти компилятор
- 22. CMake не может найти OpenCVConfig.cmake
- 23. Cmake не может найти Tesseract
- 24. Cmake не может найти QGLWidget
- 25. Gradle не может найти библиотеку
- 26. Eclipse, не может найти библиотеку
- 27. обработка не может найти библиотеку
- 28. CMake не может найти файл моей библиотеки
- 29. CMake find_library не находит библиотеку
- 30. CMake не может найти boost_program_options на Debian
Th anks. Я попробовал то, что вы предложили: сохранил файл как FindMySQL.cmake, а затем добавил эти две строки в CMakeLists.txt. Когда я это сделаю, я получаю следующий результат от CMake: Предупреждение CMake на CMakeLists.txt: 64 (find_package): Не предоставив «FindMySQL.cmake» в CMAKE_MODULE_PATH, этот проект имеет , попросил CMake найти файл конфигурации пакета, предоставленный «MySQL», но CMake его не нашел. Не удался найти файл конфигурации пакета, предоставляемый «MySQL» с любыми из следующих имен: MySQLConfig.cmake MySQL-config.cmake –
Я редактировал ответ, чтобы решить проблему пути.Модуля. Я предположил, что вы правильно настроили эту программу и загрузили файл в нужное место. – subzero
Спасибо. На самом деле у меня был путь к модулю, но он все равно дает ту же ошибку. –