我尝试安装 clang-9、clang-9-tools、llvm-9 和 llvm-9-tools 以获得程序 llvm-cov。这些软件包似乎都不包含 llvm-cov,这让我想知道哪个软件包包含它。
如何在 Ubuntu 18.04 上安装最新版本的 llvm-cov?
类似的问题以前曾被问过,但我在链接过程中遇到了一个尚未解决的问题,因此我在这里提出一个新问题。
\n我的目标是使用 Windows 命令行编译一些 C++ 代码cl-clang,并且我想使用 ninja 作为 CMake 生成器。我目前正在尝试编译一个简单的 hello-world 程序。我的目录如下所示:
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 CMakeLists.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 setup.bat\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.cpp\nRun Code Online (Sandbox Code Playgroud)\n为了使设置更简单,我使用以下命令配置 cmakesetup.bat文件配置 cmake:
@ECHO OFF\nif not exist "build\\" mkdir build\\\ncd build\ncall "C:\\Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Auxiliary/Build/vcvarsall.bat" x86\nset CC=clang-cl.exe\nset CXX=clang-cl.exe\ncmake -G Ninja ..\nRun Code Online (Sandbox Code Playgroud)\n和这个CMakeLists.txt:
cmake_minimum_required(VERSION 3.17.0)\nproject(ClangNinja)\nenable_language(C CXX)\n\nadd_executable(foo_bar src/main.cpp)\nRun Code Online (Sandbox Code Playgroud)\ncmake 设置似乎工作正常,输出如下:
\n**********************************************************************\n** Visual Studio 2019 Developer Command Prompt v16.8.3\n** Copyright (c) 2020 Microsoft Corporation\n**********************************************************************\n[vcvarsall.bat] Environment initialized for: 'x86'\n-- The C …Run Code Online (Sandbox Code Playgroud) 我正在尝试 C++17 可选类型,并认为使用它的合适位置是一个尝试打开文件并可能返回打开文件的函数。我写的函数是这样的:
std::optional<std::fstream> openFile(std::string path)
{
std::fstream file;
file.open(path);
if (!file.is_open())
{
std::cerr << "couldn't open file" << path << std::endl;
return {};
}
else
{
return std::make_optional(file); // results in compilation error
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用 g++-std=c++17作为参数之一编译它时,我得到了一大堆模板编译错误消息,从以下开始:
In file included from read_file.cpp:3:0:
/usr/include/c++/7/optional: In instantiation of ‘constexpr std::optional<typename std::decay<_Tp>::type> std::make_optional(_Tp&&) [with _Tp = std::basic_fstream<char>&; typename std::decay<_Tp>::type = std::basic_fstream<char>]’:
read_file.cpp:16:39: required from here
/usr/include/c++/7/optional:991:62: error: no matching function for call to ‘std::optional<std::basic_fstream<char> >::optional(<brace-enclosed initializer list>)’
{ …Run Code Online (Sandbox Code Playgroud)