04 64bit và cố gắng biên dịch thứ gì đó và trong nguồn của tôi là macro này:
nếu (UNIX)
# tìm Readline (thư viện đầu vào đầu cuối) bao gồm và thư viện
#
# READLINE_INCLUDE_DIR - nơi có thể tìm thấy thư mục chứa các tiêu đề READLINE
# READLINE_LIBRARY - đường dẫn đầy đủ đến thư viện READLINE
find_path(READLINE_INCLUDE_DIR dòng đọc/readline.h)
find_library(READLINE_LIBRARY NAMES đường đọc)
thông báo(TRẠNG THÁI "Đã tìm thấy thư viện Readline: ${READLINE_LIBRARY}")
thông báo (TRẠNG THÁI "Bao gồm thư mục là: ${READLINE_INCLUDE_DIR}")
nếu (KHÔNG READLINE_INCLUDE_DIR HOẶC KHÔNG READLINE_LIBRARY)
thông báo (FATAL_ERROR "** Không tìm thấy thư viện Readline!\n** Bản phân phối của bạn có thể cung cấp tệp nhị phân cho Readline, ví dụ: đối với Ubuntu, hãy thử apt-get cài đặt libreadline5-dev")
kết thúc ()
add_library(readline CHIA SẺ NHẬP KHẨU TOÀN CẦU)
set_target_properties(dòng đọc
TÍNH CHẤT
IMPORTED_LOCATION
"${READLINE_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES
"${READLINE_INCLUDE_DIR}")
khác()
# Cung cấp một mục tiêu giả
add_library (GIAO DIỆN dòng đọc)
endif()
Nhưng có một lỗi:
-- Đã tìm thấy thư viện Readline: READLINE_LIBRARY-NOTFOUND
-- Bao gồm thư mục là: /usr/include
Lỗi CMake tại dep/readline/CMakeLists.txt:23 (tin nhắn):
** Không tìm thấy thư viện Readline!
-- Cấu hình chưa đầy đủ, xảy ra lỗi!
Nhưng tôi đã cài đặt nó:
libreadline-dev đã là phiên bản mới nhất (8.0-4).
Làm cách nào tôi có thể buộc CMake sử dụng đường đọc đã được cài đặt? Có một cái gì đó như thế này?
cmake ../ -DReadline_LIBRARY=/usr/lib/x86_64-linux-gnu -DReadline_INCLUDE_DIR=/usr/include/readline
Nó không làm việc cho tôi.