草庐IT

language-cmake

全部标签

c++ - cmake 不会编译为 C++ 11 标准

我是C++的新手,一直在为编译/制作/链接/构建/任何事情而苦苦挣扎,让我们看看是否有人可以帮助我。我做了一些搜索,发现其他人也有类似的问题,但我尝试了他们的解决方案但没有成功,所以这里是:使用C++11功能(如统一初始化、线程、to_string等)的简单C++程序生成错误,“xxx”未在范围内声明。具体来说,现在我想使用to_string,并在std命名空间或特别是std::to_string中使用它会产生错误“to_string”不是STD的成员。很明显它不是用C++11编译的。所以这是我的make文件:#####################################c

c++ - 如何在 CMake 中隐藏某些目标?

我有一个库是作为我基于CMake的项目的一部分构建的。这个库有很多目标,我不想看到它们出现在我的目标列表中(在VisualStudio或QtCreator下)。有没有一种方法可以让我将这个库构建为我的项目构建的一部分(有点像依赖构建)但看不到这个库的可用目标? 最佳答案 目前几乎没有明确支持在这些IDE中隐藏特定目标。CMake(还)不支持显示/隐藏目标选项。但是,有一种方法可以避免在VisualStudio中滚动长长的目标列表;您可以使用IDE文件夹分组您的目标。CMake通过设置FOLDER来支持这一点特定目标的属性(prope

c++ - cmake/cpack 组件 debuginfo rpm 包没有出现

CentOS6.9/cmake3.6.1在我的项目中,我试图创建多个组件,而不是为它们构建运行时、开发和调试信息包,但我无法为每个组件生成一个以上的rpm。我创建了一个小项目来展示问题:./include/Box.hppnamespaceroom{classBox{public:Box(intvolume);intget_volume()const;private:intm_volume;};}./source/Box.cpp#include"Box.hpp"namespaceroom{Box::Box(intvolume):m_volume(volume){}intBox::get_

c++ - CMake "project"指令的正确用法是什么

我有一个很大的代码库,它构建了几十个库和几个可执行文件。代码库按层级分解,几乎每个级别都构建了库。我已经完成并在每个目录中放置了一个CMakeLists.txt文件来构建每个库。在每个CMakeLists.txt中,我都使用了“project(xxx)”指令。这为我定义了PROJECT_NAME、PROJECT_SOURCE_DIR和PROJECT_BINARY_DIR变量,我明智地使用了这些变量。但是,团队中的一个人对这种方法不满意,因为他找不到任何其他人这样做过的真实示例。他经常引用KitWare示例作为未使用这种方法,因此我们也不应该。他提倡的另一种方法是在每个makefile中

c++ - CMakeLists.txt 中的编译器标志不会出现在 CMake-Gui 或 CMakeCache.txt 中

我刚开始学习CMake,我想我会理解首先编写CMakeLists.txt,然后配置生成CMakeCache.txt的基本过程,然后在最后生成Makefiles。但是,当我尝试将它应用于以下CMakeLists.txt时,我没有得到预期的结果,而且我不确定出了什么问题。CMakeLists.txt的一部分如下所示:#compilerflagsif(CMAKE_COMPILER_IS_GNUCXX)set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}-std=c++11-fpermissive-Wall-Wformat-security")if(CMAKE_CXX_

c++ - cmake 和 eclipse : default include paths?

我有一个使用CMake系统构建的项目,我喜欢将其导入到Eclipse中。但是,当我使用'cmake-G"EclipseCDT4-UnixMakefiles"'生成eclipse项目文件时Eclipse项目中没有默认包含路径(例如/usr/include'或标准头文件的gcc路径)。如何以最正确的方式解决这个问题?系统:Linux海湾合作委员会4.3.3cmake2.6.4eclipse3.5.1 最佳答案 您必须转到项目属性(项目上的右键),“C/C++包含路径和符号”并将它们添加到此处作为“外部包含路径”。

c++ - 如何使用CMake生成Windows 10通用项目

我正在尝试使用CMake为Windows10生成VisualStudio15项目C++静态库。它应该可以在手机上使用,所以我认为它应该支持Windows应用商店。我可以设置任何标志吗?我找到了https://github.com/Microsoft/CMake,它是Microsoft的CMake分支,但我找不到如何使用它来启用通用应用程序支持的线索。使用“正常”cmake,当我打开对Windows站点的支持时,出现错误:errorMSB3843:Project"project1"targetsplatform"Windows",butreferencesSDK"VisualC++201

c++ - 在 CMake 中链接 C 和 CXX 文件

我正在使用CMake构建C++应用程序。但是它使用了一些C中的源文件。这是简化的结构:trunk/CMakeLists.txt:project(myapp)set(CMAKE_CXX_FLAGS"${CMAKE_C_FLAGS}-g-Wall")add_subdirectory(srcmyapp)trunk/src/main.cpp:#include"smth/f.h"intmain(){f();}trunk/src/CMakeLists.txt:add_subdirectory(smth)link_directories(smth)set(APP_SRCmain)add_execut

C++ v 表 : Part of the language or compiler dependent?

v表(virtualmethodtable)是C++规范的一部分,还是由编译器来解决虚方法查找?如果它是规范的一部分:为什么?我猜它依赖于编译器,但有人对我说它是规范的一部分。非常欢迎引用! 最佳答案 1.7TheC++memorymodel3[...]Variousfeaturesofthelanguage,suchasreferencesandvirtualfunctions,mightinvolveadditionalmemorylocationsthatarenotaccessibletoprogramsbutaremana

c++ - LNK2019 当包含 asio header 时,使用 cmake 生成的解决方案

我正在尝试使用cmake和boost库将一个大项目从gcc(Linux)移植到msvc(windows)。该项目在gcc上编译和运行良好,但在msvc上它返回以下错误:Dyna.obj:errorLNK2019:unresolvedexternalsymbol"void__cdeclboost::throw_exception(classstd::exceptionconst&)"(?throw_exception@boost@@YAXABVexception@std@@@Z)referencedinfunction"void__cdeclboost::asio::detail::do