【发布时间】:2016-01-23 12:40:19
【问题描述】:
我在 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
我可以通过在手动编译或在 Xcode 中链接 libedit.tbd 时添加 -ledit 标志来解决它,但 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})
【问题讨论】:
-
你试过什么?向我们展示您的 CMakeLists.txt。可能您必须使用
target_link_library,但您的问题缺乏任何努力和相当多的信息。 -
你读过 find_library 的文档吗? cmake.org/cmake/help/v3.3/command/find_library.html