Tôi sử dụng CMake để tạo tệp dự án và giải pháp Visual Studio 2010. Trên thực tế tôi có thể đặt các cài đặt khác nhau, như mức cảnh báo, cờ xây dựng gia tăng ect. từ CMake. Nhưng tôi không thể đặt các thư viện và thư viện bổ sung, được liệt kê trong tab cấu hình Thư mục VC++. Thực ra tôi đã thiết lập các thư mục đó theo cách thủ công. Đây là ngu ngốc và nhàm chán ...Làm thế nào để thêm CMake bao gồm và thư viện vào Visual Studio Solution?
Tôi đã cố gắng đặt các biến CMake sau: CMAKE_INCLUDE_PATH, INCLUDE_DIRECTORY nhưng không có gì xảy ra. Nếu tôi mở dự án, thư mục bao gồm của giải pháp luôn trống (chỉ có các thiết lập MSVE tiêu chuẩn được đưa ra).
Tôi cũng mệt mỏi khi đặt các biến này sau khi tạo tập tin thực thi, nhưng điều này cũng không có hiệu lực.
Đây là những gì tôi làm trực tiếp trong phần đầu của cmake file:
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(${MODULE_NAME})
IF (MSVC)
# Activate C++ exception handling
IF (NOT CMAKE_CXX_FLAGS MATCHES "/EHsc")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")
ENDIF()
# Set Warning level always to 4
IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
ELSE()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
ENDIF()
#read path of dependency modules
file(READ "msvc.deps" MSVC_PROPERTIES)
STRING(REGEX REPLACE ";" "\\\\;" MSVC_PROPERTIES "${MSVC_PROPERTIES}")
STRING(REGEX REPLACE "\n" ";" MSVC_PROPERTIES "${MSVC_PROPERTIES}")
FOREACH(e ${MSVC_PROPERTIES})
SET(INCLUDE ${INCLUDE} ${e})
MESSAGE(STATUS "[INFO]: Value ${e}")
ENDFOREACH(e)
INCLUDE_DIRECTORIES(${INCLUDE})
ENDIF()
Trong .deps nộp tôi đã thêm vào con đường của module dependeny tôi, dòng tách ra:
c:\binrev\development\boost\1.47\includes
c:\binrev\repository\modules\brCore\trunk\includes
Cả hai đều được đọc thành công nhưng không thể được đặt làm bổ sung bao gồm thư mục trong giải pháp MSVC của tôi.
Trân trọng, Hellhound
Tôi biết rằng CMake có tài liệu tốt nhưng các biến này không hoạt động. Tôi đặt bất kỳ biến nào trong số đó, nhưng khi tôi mở giải pháp MSVC thì không có gì được đặt. – Hellhound
Tôi cũng đã cố gắng thiết lập các biến môi trường MSVC INCLUDE và PATH với SET (ENV $ {PATH} "c: \ test \ ... \") nhưng điều này cũng không có hiệu lực. Các thư mục của giải pháp MSVC trống. – Hellhound
Chúng không được đặt ngay cả sau khi thêm 'include_directories (/ path/to/include)' vào tệp 'CMakeLists.txt' của bạn? Bạn có thêm 'include_directories' TRƯỚC KHI bạn khai báo mục tiêu của mình không? (Thứ tự quan trọng). Nếu vậy, bạn có thể đăng một số hoặc tất cả tệp 'CMakeLists.txt' của mình minh họa sự cố không?Lưu ý rằng biến 'CMAKE_INCLUDE_PATH' không liên quan đến đường dẫn include được trình biên dịch sử dụng và không có biến hoặc lệnh gọi là' INCLUDE_DIRECTORY'. –