You need to link againts the actual library using -lreadline in gcc arguments. 如果在cmake 里面注意在cmakelist.txt配置,这里面的特别编译选项的配置尤其重要。
下面列出我centos 6 arm-linux-gcc 4.4.3 cmake 编译mysql-5.5.32 时的编译设置:#project(${PROJECTNAME} CXX)
SET(CMAKE_SYSTEM_NAME linux)
SET(CURSES_LIBRARY CURSES_INCLUDE_PATH,"/usr/local/ncurses/lib")
SET(CURSES_INCLUDE_PATH,"/usr/local/ncurses/include")
SET(TOOLCHAIN_DIR "/usr/local/arm/4.4.3/")
SET(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN_DIR})
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_C_FLAGS -Istdc++)
SET(STACK_DIRECTION 1)
Set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -pthread -fopenmp -ldl")
Set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -lpthread -lm -lreadline ")
#add_compile_options(-std=c++11)
SET(CMAKE_C_COMPILER ${TOOLCHAIN_DIR}/bin/arm-linux-gcc)
SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_DIR}/bin/arm-linux-g++)
其中 lpthread是关于pthread库的,不是Linux默认的,lm是数学库的,