[英]How to print variables in CMake?
我想用cmake來構建我的項目,我的CMakeLists.txt很簡單:
cmake_minimum_required(VERSION 3.20)
project(YuvParallelProcess)
message("$(PROJECT_SOURCE_DIR)")
include_directories($(PROJECT_SOURCE_DIR)/inc)
link_directories($(PROJECT_SOURCE_DIR)/lib/libyuv)
add_executable(YuvParallelProcess $(PROJECT_SOURCE_DIR)/src/main.cpp)
target_link_libraries(YuvParallelProcess libyuv.a)
我的項目文件組織如下:
YuvParallelProcess
build
data
inc
lib
src
CMakeLists.txt
當我在build
目錄中運行cmake ..
時,shell 會打印:
$(PROJECT_SOURCE_DIR)
-- Configuring done
CMake Error at CMakeLists.txt:10 (add_executable):
Cannot find source file:
$(PROJECT_SOURCE_DIR)/src/main.cpp
CMake Error at CMakeLists.txt:10 (add_executable):
No SOURCES given to target: YuvParallelProcess
我不知道為什么 shell 只打印$(PROJECT_SOURCE_DIR)
而不是PROJECT_SOURCE_DIR
的值 如何打印PROJECT_SOURCE_DIR
的值 順便說一句,我不知道為什么 cmake 無法編譯我的項目
Cmake 使用花括號來獲取變量的值:
${PROJECT_SOURCE_DIR}
我建議轉儲如下消息,不要跳過空消息。
message(PROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}")
Cmake 未能配置您的項目,因為它無法識別括號中的變量並認為$(PROJECT_SOURCE_DIR)
是一個字符串文字。
有 CMakePrintHelpers Cmake 模塊,用於像上面一樣轉儲變量。
include(CMakePrintHelpers)
cmake_print_variables(PROJECT_SOURCE_DIR)
除了使用message
,您還可以使用cmake_print_variables
來顯示變量。 在這種情況下,您必須包括CMakePrintHelpers
include(CMakePrintHelpers)
cmake_print_variables(PROJECT_SOURCE_DIR)
輸出將是:
-- PROJECT_SOURCE_DIR="path/to/your/project"
使用cmake_print_variables
您還可以顯示多個變量,如下所示:
cmake_print_variables(PROJECT_SOURCE_DIR ANOTHER_VARIABLE)
輸出將是:
-- PROJECT_SOURCE_DIR="path/to/your/project" ; ANOTHER_VARIABLE="other variable"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.