【发布时间】:2020-09-02 00:02:10
【问题描述】:
所以我正在尝试学习 CMake,我想转换以下内容
gcc "-DARCH=\"`uname -a`\"" cli_arch.c arch.c
到 CMakeLists.txt 文件。
这是我目前得到的:
运行cmake -DCMAKE_C_COMPILER=/usr/bin/gcc "-DARCH=\"`uname -a`\"" ..
// CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(cli_arch)
add_executable(cli_arch cli_arch.c arch.c)
我得到的结果是:
-- The C compiler identification is AppleClang 11.0.3.11030032
-- The CXX compiler identification is AppleClang 11.0.3.11030032
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
ARCH
我不明白如何将参数 "-DARCH=\"`uname -a`\"" 传递给 CMake。
【问题讨论】:
-
您希望 cmake 调用 uname,还是希望该调用的结果由调用它的人传递给 cmake?
-
我想将该调用的结果传递到程序中,所以 cmake?基本上我有一个只打印编译器拱门的程序。所以像这样:
printf("Hello, my architecture is %s\n", ARCH);