我应该在CLion中包含哪个库来启用readline

时间:2016-01-23 12:40:20

标签: c cmake readline

我在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})

2 个答案:

答案 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)