草庐IT

CMAKE_CXX_COMPILER

全部标签

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

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

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模式没有删除我的二进制文件?

c++ - CMake & QT5 - QT5_WRAP_UI 不生成 ui 头文件

我有一个简单的CMakeLists.txt,如下所示:CMAKE_MINIMUM_REQUIRED(VERSION2.8)PROJECT(calculator)FIND_PACKAGE(Qt5Core)FIND_PACKAGE(Qt5Gui)FIND_PACKAGE(Qt5Widgets)SET(CMAKE_AUTOMOCON)SET(CMAKE_INCLUDE_CURRENT_DIRON)SET(calculator_SOURCESmain.cppmainwindow.cpp)SET(calculator_HEADERSmainwindow.h)SET(calculator_FORM

c++ - CMake RelWithDebInfo 链接到调试库

我有一个链接到六个库的项目,其中包括OpenCV。由于Release变体崩溃,而Debug工作正常(只是慢了很多),我想在RelWithDebInfo配置中编译我的项目。但是,包含Debug版本的OpenCV库,而不是Release(OpenCV没有RelWithDebInfo变体)。这会导致链接错误,例如:opencv_core249d.lib(alloc.obj):errorLNK2038:mismatchdetectedfor‘RuntimeLibrary’:value‘MDd_DynamicDebug’doesn’tmatchvalue‘MD_DynamicRelease’in

安卓工作室,CMake。如何在编译时打印调试信息?

我正在使用AndroidStudio2.3beta3。我将message(AUTHOR_WARNING"HelloCMake,helloAndroid")放入我的CMakeLists.txt但我在AndroidStudio中重建项目时只看到几次此消息。在大多数情况下,构建完成后,Gradle控制台中不会出现"HelloCMake,helloAndroid"字符串。我试过重新同步gradle和清理/重建项目,仍然没有预期的输出。我的构建有一些问题(我认为这是不正确的路径)所以我的目标是在编译时打印CMake变量以更好地理解实际发生的事情。 最佳答案

Android Gradle 避免 CMake 项目不必要的重建

我有多种风格的AndroidGradle+CMake(NDK)项目。切换到以前未构建的风格后,子项目中的C++源文件/库被不必要地重建。这是一种预期,因为输出文件夹是特定于flavor的,并且在第一次构建时不存在:./app/.externalNativeBuild/cmake/prodDebug/armeabi/libs/mylib/libmylib.a./app/.externalNativeBuild/cmake/devDebug/armeabi/libs/mylib/libmylib.a但我有很多风格和大型库要构建,并且不想重建不依赖于风格的C++库-有些库在构建时对于每种风格

cmake编译到静态.lib文件

我正在努力让Cmake将C++项目编译到静态.lib文件中,这样我就可以将其链接到另一个项目。这是我的基本设置:cmake_minimum_required(VERSION2.8)PROJECT(MyProj)IF(NOT${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}LESS3.1)cmake_policy(SETCMP0054OLD)ENDIF()set(SRCS_COMMON#HereIlocatetherelativepathstoabunchof.cppfiles#../../Source/Common/Math/Example.cpp)AD

c++ - gcov 与 CMake 使用单独的构建目录

我正在努力获取gcov的覆盖信息。编译和链接期间没有错误,但是当我运行可执行文件时,没有生成覆盖率数据。我将CMake与单独的构建目录一起使用,以这种方式将标志传递给编译器和链接器:add_definitions(--coverage)set(CMAKE_EXE_LINKER_FLAGS${CMAKE_EXE_LINKER_FLAGS}"--coverage")可执行文件是否期望源代码位于特定位置?我必须向我的CMakeLists.txt添加什么才能让事情顺利进行?亲切的问候,比约恩 最佳答案 CMake似乎将代码覆盖率(*.gcd

c++ - CMake生成器表达式,区分C/C++代码

我想将-std=c++11添加到我的add_compile_options("-std=c++11")但是,这也将它们添加到C文件的编译中,而不仅仅是C++。我知道我可以根据使用的配置添加条件编译标志:add_compile_options("$:-addMeInDebugOnly>")我怎样才能将我的标志只添加到C++文件中?我正在寻找类似的东西:add_compile_options("$:-std=c++11>")但是我需要用问号填写什么呢? 最佳答案 当您混合使用C和C++源代码时,LINKER_LANGUAGE属性可能会为

c++ - 使用 cmake 生成项目时 Eclipse 索引器正确的 c++11 语法突出显示

我知道您可以使用此处描述的GXX_EXPERIMENTALhack启用正确的语法突出显示:EclipseCDTindexerdoesnotknowC++11containers但我认为,在使用cmake生成项目时,根本不需要触及项目设置。所以。有更简单的解决方案吗? 最佳答案 答案很简单。eclipsecdt生成器在解析符号时会忽略使用add_definitions(...)添加的定义。相反,它使用CMAKE_CXX_COMPILER_ARG1。所以你所要做的就是:在调用cmake时添加-DCMAKE_CXX_COMPILER_AR