草庐IT

CMAKE_C_FLAGS_ALL

全部标签

c++ - CMake 在使用 android-cmake 工具链文件时找不到 Boost 库

我正在尝试为使用Boost库的代码创建一个CMake项目。我想为Android构建它,我正在使用这个项目作为引用:https://code.google.com/p/android-cmake/.我想使用我之前为android构建的Boost静态库,而不是将它们作为要编译的项目的一部分。这是我使用Boost的项目部分的CMakeLists.txt#BOOSTset(BOOST_ROOT/home/neb/workspace/SDLActivityCMAKE/jni/boost)set(Boost_INCLUDE_DIR/home/neb/workspace/SDLActivityCMA

c++ - CMake:使用静态库在一个项目中构建多个可执行文件

我正在从事一个项目,该项目包含3个服务器可执行文件和一个用于共享代码的库。我希望它是跨平台的,所以我使用CMake(因为Xcode无论如何都很痛苦)来处理构建过程。我在设置CMakeLists时遇到问题,以便在构建可执行文件时可以从同一级别的目录中包含库。这是目录结构(和CMake文件):tethealla2.0/CMakeLists.txtlibtethealla/CMakeLists.txtencryption/utils/patch_server/CMakeLists.txtlogin_server/CMakeLists.txtship_server/CMakeLists.txt

c++ - CMake 似乎忽略了 CMAKE_OSX_DEPLOYMENT_TARGET

我在OSX10.10.5上使用CMake3.3.2和Xcode7.1。我有一个使用CMake的小型C++项目。我希望它在OSX10.9或更高版本上运行。所以我修改了我的CMakeLists.txt来开始这个:cmake_minimum_required(VERSION3.3)set(CMAKE_OSX_DEPLOYMENT_TARGET"10.9")project(...然后我像这样创建Xcode项目:cmake-GXcode但是,生成的xcodeproj包似乎没有设置部署目标。当我在文本编辑器中打开包含的project.pbxproj文件时,没有提到MACOSX_DEPLOYMENT

c++ - CMake:编译 OpenCV 时找不到 CUDA 库

我正在使用CMAKE在Windows上编译支持CUDA的OpenCV3.0.0。当我点击“配置”时,出现如下错误:CMakeError:Thefollowingvariablesareusedinthisproject,buttheyaresettoNOTFOUND.PleasesetthemormakesuretheyaresetandtestedcorrectlyintheCMakefiles:CUDA_cufft_LIBRARY(ADVANCED)linkedbytarget"opencv_hal"indirectoryE:/dev-lib/opencv3/sources/mod

All or Nothing 工作的 C++ 类似事务的模式

假设我有两个函数DoTaskA和DoTaskB-都能够抛出TaskException-以及它们相应的“回滚”函数UndoTaskA和UndoTaskB。最好使用什么模式才能使两者都成功或都失败?我现在最好的是boolis_task_a_done=false,is_task_b_done=false;try{DoTaskA();is_task_a_done=true;DoTaskB();is_task_b_done=true;}catch(TaskException&e){//Beforerethrowing,undoanypartialwork.if(is_task_b_done){U

c++ - CMake - 自动解析预编译头的依赖关系?

到目前为止,至少据我所知,在CMake中没有标准的方法来指定以跨平台的方式向项目添加预编译头(PCH),因为C++编译器处理PCH的方式是供应商之间差异很大。对于G++,这通常是通过简单地添加一个自定义命令来解决的,该命令负责使用适当的输入调用编译器并让它生成PCH。我现在的问题是CMake不会解析你为自定义命令指定的依赖项的依赖项。例如,假定以下结构:pch.h|-dependA.h|-dependB.h...仅提供pch.h作为依赖项将导致在相应的makefile中生成适当的目标,它跟踪对pch.h。但是,CMake不解析insidepch.h的包含,因此不会识别对dependA.

c++ - 如何使用 CMake 测试 C++ 应用程序没有内存错误?

我在CMake中有一个C++项目,我已经实现了单元测试(使用GoogleTest)以及集成测试,即执行应用程序并使用正则表达式检查结果,例如add_test(NAMEMyAppIntegration.testRefitRunMseCOMMANDmy_application"--refit=true")set_tests_properties(MyAppIntegration.testRefitRunMsePROPERTIESPASS_REGULAR_EXPRESSION"mse\\=1\\.53611e\\-05")现在我想做与上面相同的事情,但运行应用程序来检测内存错误,例如只需运行

c++ - CMake 着色错误和警告

有没有办法从cmake生成的Makefile中调用gcc生成彩色输出?这将使调试应用程序变得容易得多。 最佳答案 你想要cmake二进制文件的彩色输出吗?为此,我不知道任何解决方案。CMake可以生成提供verbose(andcolourful)的Makefiles有关构建过程的信息。这可以通过以下方式启用:SET(CMAKE_COLOR_MAKEFILEON)#AndoptionallySET(CMAKE_VERBOSE_MAKEFILEON)如果你想让gcc输出有颜色,那么看看colorgcc脚本。安装它尝试这样的事情:CC=/

c++ - boost::erase_all 从字符串中删除多个字符

如果我想使用boost::erase_all从字符串中删除所有1,我可以这样做:boost::erase_all("a1b1c1","1");现在,我的字符串是“abc”。但是,如果我想使用boost::erase_all从字符串中删除所有数字(0-9),我必须为我希望删除的每个数字调用一次。boost::erase_all("a1b2c3","1");boost::erase_all("a1b2c3","2");boost::erase_all("a1b2c3","3");我想我可以使用boost::is_any_of一次删除它们,因为它可以与其他boost字符串算法一起使用,例如b

c++ - 如何为 strip 文件配置cmake

当我在Release模式下使用cmake时,我有以下二进制文件:64-bitLSBexecutable,x86-64,version1(SYSV),dynamicallylinked,interpreter/lib64/ld-linux-x86-64.so.2,forGNU/Linux2.6.32,BuildID[sha1]=485ac09b0a3aa879f88b7f5db6c00ea8d8e1eaf6,notstripped我想要剥离二进制文件。我怎么能以一种干净的方式告诉cmake将-s选项添加到我的编译器以使其被删除?为什么默认Release模式没有删除我的二进制文件?