2014-11-01 16 views
5

Jestem totalnym noobem dotyczącym cmake. Moi CMakeLists jest naprawdę podstawowe:cmake nie ma linków ncurses

cmake_minimum_required(VERSION 2.4.6) 
#set the default path for built executables to the "bin" directory 
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) 
#set the default path for built libraries to the "lib" directory 
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) 

#For the Curses library to load: 
SET(CURSES_USE_NCURSES TRUE) 

include_directories(
    "src/" 
) 
add_subdirectory(src) 

kiedy robię łącznik nie znajdzie polecenia ncurses oraz w trybie opisowym make widzę, że kompilator nie dodać -lncurses. Co muszę dodać do CMakeLists, aby działało?

+1

Nie należy ustawić EXECUTABLE_OUTPUT_PATH względem PROJECT_SOURCE_DIR jak to sprawia, że ​​niemożliwe do przeprowadzenia właściwego out-of-drzewa buduje. – datenwolf

Odpowiedz

7

przed użyciem niektórych bibliotek stron trzecich, powinieneś go znaleźć! w przypadku ncurses należy dodać find_package(Curses REQUIRED), a następnie użyć ${CURSES_LIBRARIES} w połączeniu z target_link_libraries() i include_directories(${CURSES_INCLUDE_DIR}).

+2

Dziękujemy! To zadziałało! Dla kompletnych noobów jest to target_link_libraries (your_exe $ {CURSES_LIBRARIES}) –

16

Dla super noob, pamiętaj target_link_libraries() musi być poniżej add_executable():

cmake_minimum_required(VERSION 2.8) project(main) 

find_package(Curses REQUIRED) 
include_directories(${CURSES_INCLUDE_DIR}) 

add_executable(main main.cpp) 
target_link_libraries(main ${CURSES_LIBRARIES})