2014-11-01 5 views
5

मैं cmake से संबंधित कुल नोब हूं। मेरे CMakeLists वास्तव में बुनियादी है:सेमेक गैर लिंक 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) 

जब मैं लिंकर ncurses आदेशों नहीं मिल रहा है बनाने के लिए और मेकअप की वर्बोज़ मोड में मुझे लगता है कि संकलक -lncurses में नहीं जोड़ा। इसे काम करने के लिए मुझे सीएमकेलिस्ट में क्या जोड़ना है?

+1

आप PROJECT_SOURCE_DIR करने के लिए सेट नहीं करना चाहिए EXECUTABLE_OUTPUT_PATH रिश्तेदार के रूप में इस यह असंभव उचित प्रदर्शन करने के लिए बाहर के पेड़ बनाता है बनाता है। – datenwolf

उत्तर

7

कुछ तीसरे पक्ष के libs का उपयोग करने से पहले, आपको यह खोजना चाहिए! ncurses के मामले में आपको find_package(Curses REQUIRED) जोड़ने की आवश्यकता है और फिर ${CURSES_LIBRARIES} पर target_link_libraries() और include_directories(${CURSES_INCLUDE_DIR}) पर कॉल में उपयोग करने की आवश्यकता है।

+2

धन्यवाद! यह काम किया! पूर्ण नोब्स के लिए यह target_link_libraries (your_exe $ {CURSES_LIBRARIES} है) –

16

सुपर noob के लिए, याद target_link_libraries() जरूरतों 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}) 
संबंधित मुद्दे