我知道如何使用cmake命令传递编译器选项
set(CMAKE_CXX_FLAGS "-Wall -Wno-dev -Wl,-rpath=/home/abcd/libs/")
Run Code Online (Sandbox Code Playgroud)
是否还有任何方法可以从命令行传递选项,这将覆盖CMakeList.txt选项,类似于 -
cmake -Wl,-rpath=/home/abcd/newlibs/ path/to/CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)
要么
cmake -D CMAKE_CXX_FLAGS="-Wno-dev -Wl,-rpath=/home/abcd/libs/" path/to/CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)
我的主要问题是我想知道如何追加标志以及如何从命令行覆盖现有的编译器标志.
在上周的Going Native会议上,Chandler Carruth宣布存在用于在Windows上运行clang的预构建二进制文件.相同的信息在这里的博客文章中.目标受众是Visual Studio的用户,但我想从命令行运行clang.
我运行安装程序并将LLVM bin目录添加到我的路径中,但是当我尝试编译"Hello world"时,我得到了:
C:\>clang hello.cpp
hello.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
^
1 error generated.
Run Code Online (Sandbox Code Playgroud)
我找不到任何有关如何在Windows上配置运行clang的信息,我猜我在弄清楚如何告诉clang在哪里搜索标准库头后,我将不得不告诉它在哪里查看供图书馆链接.有人可以一步一步地引导我完成设置或指向我这样的演练吗?
亲爱的C++编程员,
在使用Visual Studio工具链在Windows上构建一段时间后,我决定给Clang 5一个镜头.
我安装了LLVM 5.0.0二进制文件,Ninja构建环境,VS 2017工具和CMake 3.9.3.最终目标是能够使用VS Code编译C和C++应用程序,将CMake集成为"IDE",将Clang与LLD一起编译为编译器和链接器.
一个简单程序的编译和执行工作得非常好(相应终端历史的屏幕截图).Clang在VS Tools目录中自动检测到Windows的标准lib,并生成了可执行输出.
下一步是使用Ninja建立一个简单的构建(ninja.build文件和终端历史的截图).构建过程按预期工作,并像以前一样生成可运行的可执行文件.
当我开始将CMake集成到流程中时,问题就开始了.我的期望是CMake生成一个ninja构建文件并运行它,对吗?我尝试了以下CMakeLists文件
cmake_minimum_required(VERSION 3.9)
project(Test)
add_executable(Test main.c)
Run Code Online (Sandbox Code Playgroud)
并称为CMake cmake -G Ninja.由此产生的结果是令人失望的,我不明白,分别自己解决问题.
-- The C compiler identification is Clang 5.0.0
-- The CXX compiler identification is Clang 5.0.0
-- Check for working C compiler: C:/Meine_Programme/LLVM/bin/clang.exe
-- Check for working C compiler: C:/Meine_Programme/LLVM/bin/clang.exe -- broken
CMake Error at C:/Meine_Programme/CMake/share/cmake-3.9/Modules/CMakeTestCCompiler.cmake:51 (message):
The C compiler "C:/Meine_Programme/LLVM/bin/clang.exe" is not able to
compile a simple test program.
It fails with …Run Code Online (Sandbox Code Playgroud) 我正在尝试从命令提示符访问 Visual Studio 2019 版本的 clang。我正在寻找官方的方法来做到这一点。到目前为止,它似乎没有记录在任何MSVC/clang 博客文章中。(请注意,我不是在寻找在 Windows 上构建/安装 clang 的其他方法。这个问题特别与 VS2019 clang 组件有关。)
使用 Visual Studio 安装程序,我安装了 Visual Studio 2019 Professional(版本 16.4.1)以及可选的“适用于 Windows 的 C++ Clang 工具(9.0.0 - x64/x86)”。clang 工具链似乎安装在:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\Llvm\bin
(也许我可以将此目录添加到 PATH,但这并不健壮。我也找不到任何 Microsoft 文档中记录的这种方法。)
我的最终目标是clang-cl与 scons一起使用。但作为第一步,我希望能够clang-cl从命令提示符运行。
当我运行vcvarsall.bat时,命令提示符下没有可用的 clang 工具:
C:\Users\Ross>"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat" x64
**********************************************************************
** Visual Studio 2019 Developer Command Prompt v16.4.1
** Copyright (c) 2019 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] …Run Code Online (Sandbox Code Playgroud)