我在El Capitan上使用CLion。现在我需要在我的项目中使用readline和add_history函数。但链接器抱怨下面的那些。
Undefined symbols for architecture x86_64:
"_add_history", referenced from:
_main in lisp_3.c.o
"_readline", referenced from:
_main in lisp_3.c.o
ld: symbol(s) not found for architecture x86_64
我可以通过在手动编译时添加-ledit
标志或在Xcode中链接libedit.tbd来解决它,但是CLion使用CMake。所以我不知道应该将哪个库添加到CMakeLists.txt。
这是我第一次使用CMake构建项目。我只能按照他在这个问题中所做的事情How to include C static libraries in CMAKE project on MAC OS X
cmake_minimum_required(VERSION 3.3)
project(test)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
set(SOURCE_FILES read.c)
add_executable(test ${SOURCE_FILES})
find_library(readline_lib /* what can I place here?*/)
set(frameworks ${readline_lib})
target_link_libraries(test ${frameworks})
答案 0 :(得分:0)
可在以下位置找到指向readline库tar的链接:<https://cnswww.cns.cwru.edu/php/chet/readline/rltop.html>
或更直接来自:<git.savannah.gnu.org/cgit/readline.git/snapshot/readline-master.tar.gz>
我认为历史函数附带了readline库。
答案 1 :(得分:0)
将此行添加到您的CMakeLists.txt:
target_link_libraries(yourprojectname /usr/lib/x86_64-linux-gnu/libreadline.so)