Tôi hiện đang cố gắng để có được CMake chạy cho dự án của tôi (trên cửa sổ). Tôi muốn sử dụng một vị trí tùy chỉnh nơi tất cả các thư viện được cài đặt. Để thông báo cho CMake về con đường mà tôi đã cố gắng để làm điều đó:cmake - find_library - vị trí thư viện tùy chỉnh
set(CMAKE_PREFIX_PATH D:/develop/cmake/libs)
Nhưng khi tôi cố gắng tìm thư viện với
find_library(CURL_LIBRARY NAMES curl curllib libcurl_imp curllib_static)
CMake không thể tìm thấy nó. Khi tôi đặt đường dẫn tiền tố của mình thành
set(CMAKE_PREFIX_PATH D:/develop/cmake/libs/curl)
... thư viện được đặt.
Vì vậy, câu hỏi của tôi là: Làm thế nào tôi có thể cấu hình CMake đúng cách để làm việc với một structore thư mục tại một địa điểm tùy chỉnh mà trông như thế:
D:/develop/cmake/libs/
-> libA
-> include
-> lib
-> libB
-> include
-> lib
-> ...
-> include
-> lib
Trong "bao gồm" nói dối các tiêu đề công cộng và trong "lib "là các thư viện được biên dịch.
Hope ai đó có thể giúp tôi - Cảm ơn trước
chỉnh sửa: Cách giải quyết hiện nay đối với tôi là, để làm điều này trước khi tôi tìm kiếm cho các thư viện:
set(CUSTOM_LIBRARY_PATH D:/develop/cmake/libs)
file(GLOB sub-dir ${CUSTOM_LIBRARY_PATH}/*)
foreach(dir ${sub-dir})
if(IS_DIRECTORY ${dir})
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH};${dir})
endif()
endforeach()
Nhưng cách mà các module mặc định cho tăng wont tìm thấy nó cho đến khi nó bởi vì structore thư mục của tăng là một chút khác nhau.
boost -> include -> boost-1_50 -> *.hpp
Khi tôi di chuyển nội dung nếu "tăng-1_50" để "bao gồm" thư viện có thể được tìm thấy nhưng cách mà nó không thể xử lý nhiều phiên bản phải không?
Thứ nhất, tại sao bạn thiết lập CMAKE_PREFIX_PATH bên CMakeLists.txt? Điều này sẽ không hoạt động nếu một người khác sẽ cố gắng biên dịch dự án của bạn. – arrowd
Chỉ để thử nghiệm - nếu nó hoạt động, tôi sẽ sử dụng biến môi trường – Daniel