草庐IT

cmake-custom-command

全部标签

c++ - 如何使用 C++/Qt/CMake 项目构建 Rust 代码?

我有一个现有的C++/Qtproject用CMake构建。我想开始添加可以从主C++代码库中调用的Rust代码。构建项目的正确方法是什么?当前项目结构:./CMakeLists.txt./subproject-foo/CMakeLists.txt./subproject-foo/src/..../subproject-bar/CmakeLists.txt./subproject-bar/src/..../common/CMakeLists.txt./common/src/...我想添加一个结构相似的common-rust/...目录。我怎样才能把它整合到项目中?

c++ - 使用 CMake 链接 Boost 库的静态版本

我在/usr/lib中有静态和动态版本的boost库。现在我希望CMake在我的可执行文件链接期间更喜欢静态版本。我能做什么? 最佳答案 在您的CMakeLists.txt文件中:set(Boost_USE_STATIC_LIBSON)find_package(BoostREQUIRED...)在我有...的地方,您可以选择输入您要使用的库的名称,然后在下面的target_link_libraries(targetname${Boost_LIBRARIES})中输入。如果你有一个相当新的CMake发行版,它应该完全按照宣传的那样工作

C++ CMake(添加非构建文件)

我正在使用cmake来配置我的项目。我使用读取CMakeLists.txt的qtcreator可视化项目文件。我有一些文本文件(非代码:配置文件、日志、..),我想将它们添加到我的cmake项目中,而不用(当然)编译/链接它们。可能吗?主要目标是使用qtcreator在我的项目树中自动打开它们并编辑它们......感谢您的帮助。 最佳答案 您应该能够将它们添加到您的源列表中,只要调用合适的add_executable或add_library,它们就会出现在IDE中。我相信CMake使用文件的扩展名来确定它们是否是实际的源文件,因此如

c++ - CMake 没有找到 Boost

我正在尝试安装CGAL。他们将安装过程描述为非常简单here,第6.1节。当我运行cmake-gui然后单击configure时,我得到以下输出:CMakeErroratD:/programfiles/CMake2.8/share/cmake-2.8/Modules/FindBoost.cmake:1192(message):UnabletofindtherequestedBoostlibraries.Boostversion:1.51.0Boostincludepath:D:/programfiles/boost_1_51ThefollowingBoostlibrariescould

macos - 蒙戈 : Command Not Found (OS X)

我正在尝试测试MongoDB,我已将其全部下载并移至根文件夹。我可以导航到包含mongod的文件夹,但是当我尝试通过在终端中键入“mongod”来运行它时,我收到一条消息:"mongod:commandnotfound" 最佳答案 以上两个答案都是正确的。您可以在以下文件之一中指定路径:.profile、.bashrc或.bash_profileexportPATH="$PATH:/usr/local/mongodb/bin"然后直接调用守护进程或shellmongodmongo或者对于不在$PATH中的命令,使用包含这些文件的目录

macos - 蒙戈 : Command Not Found (OS X)

我正在尝试测试MongoDB,我已将其全部下载并移至根文件夹。我可以导航到包含mongod的文件夹,但是当我尝试通过在终端中键入“mongod”来运行它时,我收到一条消息:"mongod:commandnotfound" 最佳答案 以上两个答案都是正确的。您可以在以下文件之一中指定路径:.profile、.bashrc或.bash_profileexportPATH="$PATH:/usr/local/mongodb/bin"然后直接调用守护进程或shellmongodmongo或者对于不在$PATH中的命令,使用包含这些文件的目录

c++ - CMake 无法找到 BOOST 库

我尝试了以下所有方法:配置环境变量重新构建从源代码重新安装BOOSTsudoapt-getinstalllibboost-all-dev但仍然出现以下错误:CMakeErrorat/usr/share/cmake-2.8/Modules/FindBoost.cmake:1131(message):UnabletofindtherequestedBoostlibraries.UnabletofindtheBoostheaderfiles.PleasesetBOOST_ROOTtotherootdirectorycontainingBoostorBOOST_INCLUDEDIRtothed

c++ - CMake:如何传递预处理器宏

如何将宏传递给预处理器?例如,如果我想编译我的代码的某些部分,因为用户想要编译单元测试,我会这样做:#ifdef_COMPILE_UNIT_TESTS_BLABLA#endif//_COMPILE_UNIT_TESTS_现在我需要将此值从CMake传递给预处理器。设置变量不起作用,我该如何完成呢? 最佳答案 add_definitions(-DCOMPILE_UNIT_TESTS)(参见CMake'sdoc)或修改标志变量之一(CMAKE_CXX_FLAGS或CMAKE_CXX_FLAGS_)或设置COMPILE_FLAGS目标上的

C++ 模板和 Emacs : Customizing Indentation

据我所知,在emacs中,没有办法自定义C++中模板列表的结束“>”字符的缩进级别。目前我的emacs缩进方案是这样做的:templateclassX;我想要的是这样的:templateclassX;将缩进变量template-args-cont设置为零将正确缩进'>'字符,但代价是取消缩进模板参数列表的实际正文。emacs专家有什么建议吗?编辑:我通过以下hack得到了一些帮助:(defunindent-templates(elem)(c-langelem-colelemt)(let((current-line(buffer-substring-no-properties(point

c++ - 将 gcov 与 CMake/Cash 结合使用的详细指南?

我在我的项目中使用CMake,并设置了一个cdash服务器以进行连续/夜间构建。一切正常,通过设置crontab,我们每小时/每晚的构建/测试结果会自动上传到我们的cdash服务器。我的下一步是将测试覆盖率报告添加到构建中。我在这里找到文档https://gitlab.kitware.com/cmake/community/-/wikis/doc/ctest/Coverage但坦率地说,它离实用指南有点远。目前我已经添加了所需的标志(而不是-fprofile-arcs-ftest-coverage,我发现--coverage更好),编译过程生成.gcno文件。但后来我被困住了。命令ma