2014-01-24 132 views
2

好的,我不知道發生了什麼事情?我只是在我的MacBook上遵循一些指令(顯然是用於Ubuntu操作系統)。Cmake構建包時出錯

一切都很好,直到最後一步。

當我做make,我看到以下錯誤:

Linking CXX executable ../../bin/test-wordcount 
ld: warning: path '/usr/local/lib/libprotobuf.dylib' following -L not a directory 
ld: warning: path '/usr/local/lib/libzmq.dylib' following -L not a directory 
Undefined symbols for architecture x86_64: 
    "_del_curterm", referenced from: 
     terminalHasColors(int) in libLLVMSupport.a(Process.o) 
    "_set_curterm", referenced from: 
     terminalHasColors(int) in libLLVMSupport.a(Process.o) 
    "_setupterm", referenced from: 
     terminalHasColors(int) in libLLVMSupport.a(Process.o) 
    "_tigetnum", referenced from: 
     terminalHasColors(int) in libLLVMSupport.a(Process.o) 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make[2]: *** [bin/test-wordcount] Error 1 
make[1]: *** [test/wordcount/CMakeFiles/test-wordcount.dir/all] Error 2 
make: *** [all] Error 2 

我在想什麼?

我的CMakeLists.txt文件 http://collabedit.com/8vc7s

+0

那是你自己的項目?如果不是,哪個版本的項目是什麼?如果是你自己的,試着在你的CMakeLists.txt中用'-l'(小寫的L)代替'-L'。 – usr1234567

+0

@ user2799037:我在CMakeLists.txt中看不到任何-L:( – Fraz

+0

如何添加你的庫?它應該用'add_library CMake會自動添加正確的-L/-l。 – usr1234567

回答

1

您使用的頭term.h,但包含這些(出口)的符號庫(del_curterm,...)是不是你的LD路徑term.h上。找到適用於您的平臺的庫,安裝它並將其添加到-Lwitch中。

也看到unexisting目錄

+0

感謝您的迴應..我正在使用山獅OSX ..?我如何爲我的平臺安裝term.h並在哪裏添加-L開關..抱歉提問這樣的基本問題 – Fraz

+0

嘗試使用包ma渴望你的系統(我沒有這個操作系統)。 -L swich是由CMAKE添加的,但是可能安裝的軟件包最終會在/ usr/local/lib或某處已經包含的內容 – Peter

+0

嗨..再次..這裏是文件http://collabedit.com/8vc7s 我不確定在哪裏添加什麼? :(你可以看看文件並提出建議 – Fraz

4

的LD警告我知道這是一個古老的堆棧,但它在最初的幾個搜索命中尋求這個問題的解決方案時顯示出來。

在OSX中,您可能需要將「ncurses」添加到目標鏈接庫。即:

TARGET_LINK_LIBRARIES(myProject的ncurses的 $ {} LLVM_LIBRARY [...所有庫])