2016-01-23 9 views
-1

Я использую CLion на El Capitan. Теперь мне нужно использовать функцию readline и add_history в моем проекте. Но компоновщик жалуется ниже.Какую библиотеку я должен включить в CLion для включения readline

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 флаг при компиляции вручную или связывая libedit.tbd в Xcode, но 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

Что вы пробовали? Покажите нам ваш CMakeLists.txt. Вероятно, вам нужно использовать 'target_link_library', но на ваш вопрос не хватает усилий и достаточно информации. – usr1234567

+0

Вы читали документацию find_library? https://cmake.org/cmake/help/v3.3/command/find_library.html – usr1234567

ответ

0

ссылка на дегтя в Readline библиотеки доступен по адресу: <https://cnswww.cns.cwru.edu/php/chet/readline/rltop.html>

или более непосредственно от: <git.savannah.gnu.org/cgit/readline.git/snapshot/readline-master.tar.gz>

Я думаю, функции истории имеют библиотеку readline.

0

Добавить эту строку в CMakeLists.txt:

target_link_libraries(yourprojectname /usr/lib/x86_64-linux-gnu/libreadline.so) 
Смежные вопросы