草庐IT

CMAKE_C_COMPILER

全部标签

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++ 函数到指针的隐式转换 : which compiler is right? Clang 和 GCC 不同意

templatestructA{};voidfunc();Aa;//sameresultwithAa;此代码使用Clang(包括最新的8.0.0)编译,但不能使用GCC(包括最新的9.1)编译。GCC说:错误:'void()'不是模板非类型参数的有效类型哪个编译器是正确的,为什么?更新我猜GCC是错误的,因为以下代码在Clang和GCC上都可以编译:templatestructA{};voidfunc();Aa;//sameresultwithAa;因此与GCC在第一个示例中的报告相反,void()似乎是“模板非类型参数的有效类型” 最佳答案

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