草庐IT

CMAKE_EXPORT_COMPILE_COMMANDS

全部标签

CMake 学习笔记

CMake学习笔记CMake已经是C++构建系统的事实标准。主要是对小彭老师的C++视频课程中CMake相关部分的一些笔记和整理,视频链接如下学C++从CMake学起现代CMake高级教程包含视频中的代码和PPT的仓库见以下链接https://github.com/parallel101/course本笔记重点关注与CMake相关的一些知识点,需要的前置知识为C++本身的头文件机制、编译流程、Makefile的基本认知等内容,所以不会赘述课程中出现的一些很基本的内容。目录CMake学习笔记学C++从CMake学起基本的C++编译相关的命令CMake简介静态库和动态库CMake中的静态库和动态库

cmake应用:集成gtest进行单元测试

编写代码有bug是很正常的,通过编写完备的单元测试,可以及时发现问题,并且在后续的代码改进中持续观测是否引入了新的bug。对于追求质量的程序员,为自己的代码编写全面的单元测试是必备的基础技能,在编写单元测试的时候也能复盘自己的代码设计,是提高代码质量极为有效的手段。  在本系列前序的文章中已经介绍了CMake很多内容,本文是针对单元测试的外延。本系列更多精彩文章敬请关注公众号【很酷的程序员】的话题:CMake。  本文主要介绍以下几个方面的内容:  1、何为单元测试  2、何为gtest  3、怎么使用gtest  4、怎么运行测试一单元测试是什么?  单元测试(UnitTesting),一般

php - php : var_export() returns\0 null characters, 和 ucfirst()、strtoupper() 等中的 UTF-8 问题表现异常

我们正在处理一个以前从未发生过的JoyentSolaris服务器中的奇怪错误(不会发生在本地主机或其他两个具有相同php配置的Solaris服务器中)。其实我也不确定是要看php还是solaris,是软件问题还是硬件问题...我只是想发布这个,以防有人能为我们指明正确的方向。所以,问题似乎出在var_export()处理奇怪的字符时。在CLI中执行此操作,我们在本地主机和两台服务器中获得了预期的结果,但在第三台服务器中没有。所有这些都配置为使用utf-8。$php-r"echovar_export('ñu',true);"在较旧的服务器和本地主机中提供此(预期):'ñu'但在服务器中我

使用CMake启用RUNPATH特性

使用CMake,启用RUNPATH特性,可以参考官方帖子。如下源码来自于上述帖子。CMAKE_MINIMUM_REQUIRED(VERSION2.8FATAL_ERROR)PROJECT(RUNPATHC)SET(CMAKE_VERBOSE_MAKEFILEON)SET(CMAKE_INSTALL_RPATH$ENV{HOME}/lib)FILE(WRITE${CMAKE_BINARY_DIR}/main.c"intmain(void){return0;}\n")ADD_EXECUTABLE(mainmain.c)INSTALL(TARGETSmainRUNTIMEDESTINATIONbin

使用CMake启用RUNPATH特性

使用CMake,启用RUNPATH特性,可以参考官方帖子。如下源码来自于上述帖子。CMAKE_MINIMUM_REQUIRED(VERSION2.8FATAL_ERROR)PROJECT(RUNPATHC)SET(CMAKE_VERBOSE_MAKEFILEON)SET(CMAKE_INSTALL_RPATH$ENV{HOME}/lib)FILE(WRITE${CMAKE_BINARY_DIR}/main.c"intmain(void){return0;}\n")ADD_EXECUTABLE(mainmain.c)INSTALL(TARGETSmainRUNTIMEDESTINATIONbin

android - 在 Android 上使用 Address Sanitizer 构建,但使用 CMake

我正在尝试为android构建一个.so,我想使用地址清理器进行构建,但我看到的唯一说明是针对基于AndroidNDK的Makefile,但我使用的是较新的认可CMake设置。仅添加标志-fsanitize=address是不够的,因为缺少clang运行时库。在我的CMakeListsforAndroid构建库中添加什么是正确的? 最佳答案 您还需要按照documentation中的说明准备您的设备.您必须从NDK运行asan_device_setup脚本。它会将asan.so放在设备上。

android - 如何强制 CMake 在 Android NDK 项目中使用响应文件?

我有一个包含NDK组件的Android项目,配置为使用CMake构建。根据项目目录在驱动器上的位置,我可能会收到“命令行太长”的提示。CMake尝试构建此项目时出错。这是因为CMake汇编了巨大的命令行,列出了项目中的所有.cpp文件。我读到CMake有一种称为“响应文件”的机制来解决这个问题,但我找不到在NDK项目中启用它们的方法。有什么建议吗? 最佳答案 你canspecifyresponsefile在CMakeLists.txt或build.gradle中,添加android{defaultConfig{...external

spring boot项目 mvn test 和 mvn clean install 和 mvn test-compile 识别不到测试类无法运行单元测试

测试类使用了junit4,springboot版本的test框架自带的是junit5,不兼容。按照springboot对应的版本的junit框架,修改测试类,比如我就修改了junit5。按照:https://docs.spring.io/spring-boot/docs/2.6.3/reference/html/features.html#features.testing,强制使用junit4

【VSCode】Windows环境下,VSCode 搭建 cmake 编译环境(通过配置文件配置)

除了之前的使用VSCode插件来编译工程外,我们也可以使用配置文件来编译cmake工程,主要依赖launch.json和tasks.json文件。目录一、下载编译器1、下载WindowsGCC2、选择编译器路径二、配置debug环境1、配置lauch.json文件2、配置tasks.json文件三、编译工程1、测试工程结构2、开始编译 一、下载编译器1、下载WindowsGCC这里是在Windows环境下,所以下载的是Windows环境使用的gcc编译器。下载地址: MinGW-w64-for32and64bitWindows-BrowseFilesatSourceForge.net下载完毕后

android - 发生 CMake 与服务器通信错误

我正在构建一个需要一些NDK代码的项目,但最近几天这个问题让我抓狂。这只是一个使用NDK的空项目,它是按照AS指南创建的,没有任何改变。环境:AndroidStudio3.2.1构建#AI-181.5540.7.32.5056338,构建于2018年10月9日JRE:1.8.0_152-release-1136-b06amd64JVM:JetBrainss.r.o的OpenJDK64位服务器VMWindows1010.0CMake版本3.10.2.4988404(由SDK管理器下载)提示如下:SupportforCMake3.7andhigherisapreviewfeature.To