- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我遇到了有关 CMake 和外部项目的问题。
我通过 CMAKE_CACHE_ARGS
和/或 CMAKE_ARGS
设置了一个编译器和一些标志,这在我第一次运行 make
时有效,但在任何后续调用中外部项目的 CMake 缓存被重建(删除)并且标志没有相应地设置为我指定的标志!所以我想知道是否有任何解决方法/方法可以仅指定一次编译器以防止重建缓存?
以下是一个非常基本的测试项目,它下载并编译 GTest,首先调用 make
使用 Clang++ 和给定的标志进行编译,任何后续调用 make 都会导致 CMake 缓存在没有设置了正确的标志!
cmake_minimum_version_required(VERSION 2.8.6)
project(test)
include(ExternalProject)
ExternalProject_Add(
GTest
SVN_REPOSITORY http://googletest.googlecode.com/svn/tags/release-1.7.0/
CMAKE_ARGS
-DCMAKE_CXX_COMPILER:STRING=clang++
-DCMAKE_CXX_FLAGS:STRING="\"-std=c++1y -stdlib=libc++\""
INSTALL_COMMAND "" # One can not install GTest so dont do anything here
LOG_DOWNLOAD 1
LOG_UPDATE 1
LOG_CONFIGURE 1
LOG_BUILD 1
)
最佳答案
我遇到了同样的问题,但设置不同。尽管此答案似乎不适用于您的设置,但它可能对其他人有帮助。
在我的例子中,问题是通过以下方式声明项目:
project(test LANGUAGES C)
外部项目是 C++ 项目。将 CXX
添加到语言(或完全删除该选项,因为 C CXX
是默认设置)解决了我的问题。
关于cmake ExternalProject缓存被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23941499/
我正在尝试使用 ExternalProject模块: ExternalProject_Add( googlebenchmark GIT_REPOSITORY "htt
我正在尝试使用 ExternalProject模块: ExternalProject_Add( googlebenchmark GIT_REPOSITORY "htt
我正在使用 CMake 构建跨平台(例如 Linux/Windows)应用程序,该应用程序还使用第三方库作为外部项目。 我知道 MSVC 是一个多配置环境,因此不使用 CMAKE_BUILD_TYPE
我正在使用 Cmake 构建一个项目并使用 FetchContent 来管理依赖项。由于多种原因,我不能依赖系统范围内安装的包,所以这个包有很大帮助。它允许我做这样的事情: cmake_minimum
假设我有以下具有这些依赖项的项目设置: MainProject ├─ Dependency_1 │ └─ Dependency_2 └─ Dependency_2 这些依赖关系在 MainProje
在 ExternalProject_Add cmake 的文档,它提到设置 EP_BASE属性(property)。我已经尝试使用 set 设置它关键字,但它似乎不起作用。 ExternalProje
我正在构建 Google 的 FlatBuffers 作为我自己项目的依赖项,我需要在构建时编译一个模式。我不想使用 BuildFlatBuffers.cmake或 FindFlatBuffers.c
我正在尝试创建一个 super 构建来编译依赖项(zlib、nifticlib 和 boost),然后根据所有这些库编译我的项目。 这是我的 CMakeLists: cmake_minimum_req
当安装目标困惑时,引用 ExternalProjects 可能会很痛苦。因此,在为给定项目生成主项目文件之前,可能需要构建和安装一次 ExternalProjects。 CMake 是否可行以及如何实
当安装目标困惑时,引用 ExternalProjects 可能会很痛苦。因此,在为给定项目生成主项目文件之前,可能需要构建和安装一次 ExternalProjects。 CMake 是否可行以及如何实
构建 CMake 项目时(例如在 Windows 上),我可以通过执行以下命令来执行并行构建: cmake --build . -- /m /m 开关被传递到 msbuild,我得到了并行构建。但是,
我的 CMakeLists.txt 之一中有以下代码: FIND_PACKAGE(sphinxbase) if (${SPHINXBASE_FOUND}) INCLUDE_DIRECTORIE
两天前,我添加了一个外部项目来使用autotools编译一个项目。直到今天为止它一直运行良好...... 我有一个奇怪的错误: CMake Error at /usr/share/cmake-2.8/
我有一个外部项目,它提供了我想用来构建可执行文件的源文件。我目前有如下内容: ExternalProject(myproj) add_executable(myexecutable source.c)
我正在尝试创建一个 CMakeLists,它会自动下载和编译一个库,并将它链接到 Windows 和 Linux 上的另一个项目。为此,我使用了 ExternalProject_Add。下载和编译部分
我已经(大部分)成功地为 googletest 设置了 ExternalProject_Add。但是,我注意到诸如我选择的 C++ 编译器、构建类型等内容不会自动转发到 ExternalProject
我正在尝试使用 ExternalProject_Add 将外部项目作为库添加到我的项目中: ExternalProject_Add( xgboost GIT_REPOS
我正在尝试将现有的 native 库用作 android 项目的一部分。我按照有关将 C 和 C++ 代码添加到 android studio 项目的说明进行操作。我到了我有一个正常工作的 CMake
我有一个具有稍微复杂的构建过程的应用程序,作为 CMake 的新手,我想知道是否有人可以为我提供任何指示。 默认情况下,该应用程序由单个可执行文件组成,该可执行文件是根据 src 和包含文件夹中提供的
我正在处理的项目依赖于 Eigen3。以前,我只是让最终用户在配置步骤中手动指定 Eigen3 header 的路径,但这变得很麻烦,我想从用户身上承担一些责任。我已经设置了一个 CMake 外部项目
我是一名优秀的程序员,十分优秀!