2016-08-09 2 views
1

Возможно, это глупый вопрос, но у меня есть программа, которая мне нужна -lmysqlcppconn -lreadline и -lpthread.Cmake import -lpthread и другие

Я использую CMake для генерации Makefile для такого использования постановляю:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y -lmysqlcppconn -lreadline -lpthread") 
...(other command most likely irrelevant) 

add_executable(name ${SOURCES} ${CMAKE_CXX_FLAG}) 

, но я получил предупреждение последующих, когда я исполняю Makefile:

clang: warning: -lmysqlcppconn: 'linker' input unused 
clang: warning: -lreadline: 'linker' input unused 
clang: warning: -lpthread: 'linker' input unused 

Exists лучший способ сделать это?

ответ

2

CMAKE_CXX_FLAGS предназначен для флагов компилятора (с помощью компиляции и компоновки файлов, созданных с помощью CMake, являются отдельными шагами). Для того, чтобы связать вам нужно что-то вроде

target_link_libraries(name mysqlcppconn) 
target_link_libraries(name readline) 
target_link_libraries(name pthread) 

Для резьб библиотеки лучший способ, чтобы следить за процессом объяснена в this answer

+0

CMake Ошибка при CMakeLists.txt: 15 (target_link_libraries): Невозможно указать ссылку библиотеки для цели " eyeTyou ", который не построен по проекту . Я пробовал это раньше, но я не знаю, чтобы связать эти библиотеки. – warwcat

+0

Извините, моя ошибка. Я не ожидал, что мне понадобится cal target_link_libraries (...) после add_executable (...), который работает – warwcat