首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用CMake创建二进制文件会删除运行时路

径,解决方法是使用cmake的-G选项指定构建类型,并使用CMAKE_BUILD_TYPE指定构建类型,使用cmake_build_type命令指定构建类型,例如:

代码语言:txt
复制
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
cmake_build_type

如果使用命令行构建,则可以使用以下命令:

代码语言:txt
复制
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
nmake

如果使用Visual Studio构建,则可以在Visual Studio中设置构建选项,例如:

  1. 打开Visual Studio
  2. 在解决方案资源管理器中右键单击要构建的项目,然后选择“属性”
  3. 在“常规”选项卡中,将“配置类型”更改为“生成”
  4. 在“工具”选项卡中,选择“选项”
  5. 在“选项”对话框中,选择“CMake”选项卡
  6. 在“CMake”选项卡中,将“生成解决方案”选项设置为“全部生成”
  7. 点击“确定”以保存设置并构建项目

这样就可以生成二进制文件了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么使用SaveFileDialog创建文件需要删除权限?

问题 好像很少人遇到这种需求。假设有一个文件夹,用户有几乎所有权限,但没有删除的权限,如下图所示: ? 这时候使用SaveFileDialog在这个文件夹里创建文件居然会报如下错误: ?...更奇怪的是,虽然报错了,但文件还是创建出来,不过这是个空文件。不仅WPF,普通的记事本也会有这个问题,SaveFileDialog创建一个空文件,记事本则没有被保存。具体可以看以下GIF: ?...问题原因 其实当SaveFileDialog关闭前,对话框创建一个测试文件,用于检查文件名、文件权限等,然后又删除它。...所以如果有文件创建权限,而没有文件删除权限,在创建测试文件后就没办法删除这个测试文件,这时候就会报错,而测试文件留了下来。 有没有发现SaveFileDialog中有一个属性Options?...// // 摘要: // 获取 Win32 通用文件对话框标志,文件对话框使用这些标志来进行初始化。

86620
  • Git的使用(一):创建本地仓库并在其中添加、修改、删除文件

    创建本地版本库 版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以...创建示例文件夹 (二)、创建版本库的三种方式: 1、使用Git GUI Here建立; 在文件夹内右键; ? 创建本地版本库1.1 选择Git GUI Here; ?...2、使用Git Bash Here建立 在文件夹内右键 ? 创建本地版本库2.1 选择Git Bash Here; ? 创建本地版本库2.2 输入 git init; ?...创建本地版本库2.3 点击叉号,第二种方式建立本地版本库就成功了。 3、使用TortoiseGit建立 在示例文件夹右键; ? 创建本地版本库3.1 选择Git在这里创建版本库; ?...删除10 总结 本文讲解了利用TortoiseGit创建本地仓库、在本地仓库提交文件、修改文件删除并还原文件的操作。只需要平时多用,就可以掌握。 欢迎关注 扫下方二维码即可关注:

    2.2K30

    MySQL-配置参数时 报错:remove CMakeCache.txt and rerun cmake.On DebianUbuntu......

    ,(报错也产生CMakeCache文件) 2、第二次完整的配置输入,报错 原因是前产生CMakeCache文件 解决:如提示删除CMakeCache文件,再重新构建 [root@controller...mysql-5.6.36]# rm -rf CMakeCache.txt  什么是CMakeCache.txt及其覆盖我的变量的原因:  CMake在构建期间重新运行时使用缓存,因为CMakeList...文件已更改,或者当您使用make rebuild_cache时。...使用CMake的是如下所述的标准worflow: 运行cmake在一个空的二进制目录生成项目&缓存 在CMake的GUI或ccmake或类似的初始版本,检查缓存变量由初始运行设置,并根据需要进行修改。...如果你真的需要覆盖的用户选择在你的项目,你可以: 添加FORCE到set命令,或 使用set没有CACHE设置非缓存变量。非缓存变量优先于相同名称的缓存变量。

    6610

    CMake 基础学习

    : 表示库文件的名字 [STATIC | SHARED | MODULE] : 生成的库文件类型 STATIC 静态库,在链接其他目标时使用 SHARED 动态链接库,运行时加载 MODULE...不会被链接到其它目标中,但是可能会在运行时使用dlopen-系列的函数动态链接 例: # create lib , 在当前cmake创建一个lib,名称为model_login,SHARED...binary_dir 指定中间二进制和目标二进制存放的位置 EXCLUDE_FROM_ALL 编译过程中排除的文件 aux_source_directory 查找目录中的所有源文件 aux_source_directory...指定在编译给定目标时要使用的包含目录 # 添加头文件的路径,以便查找到头文件 : add_library 创建的target名称 或者 add_executable 创建的target名称...如果没有找到,结果变量将会是-NOTFOUND,并且在下次使用相同变量调用find_library命令时,搜索过程再次尝试。

    1.7K40

    万字总结编译利器CMake,从入门到项目实战演练

    # 我们应该使用我们自己的数学函数吗?选项(USE_MYMATH “使用教程提供的数学实现” ON ) 这个选项显示在CMake的GUI,并且其默认值为ON。...添加生成的文件和生成器(步骤 5) 在这一节当中,我们告诉你如何将一个生成的源文件加入到应用程序的构建过程中。在此例中,我们创建一个预先计算好的平方根的表,并将这个表编译到应用程序中去。...而在此例中,我们将要构建安装包来支持二进制安装以及cygwin,debian,RPMs等的包管理特性。为了达到这个目的,我们会使用CPack来创建平台相关的安装包。...如果要构建一个二进制包你需要运行: cpack --config CPackConfig.cmake 如果要创建一个关代码包你需要输入 cpack --config CPackSourceConfig.cmake...如果我们将两者倒置怎样?运行cmakecmake-gui以配置项目,然后使用所选的构建工具进行构建。然后运行构建的Tutorial可执行文件

    1.1K00

    Linux下CMake简明教程

    输出如下信息, 再来看看目录下的文件, 可以看到成功生成了Makefile,还有一些cmake运行时自动生成的文件。...从前面几个case中可以看到,如果不这样做,cmake运行时生成的附带文件就会跟源码文件混在一起,这样会对程序的目录结构造成污染,而在build目录下运行cmake,生成的附带文件就只会待在build目录下.../xx来查看 之前本节教程使用的是库查找方法是link_directories,但是很多读者反映运行时有问题,本人去官方文档上查了下,发现不建议使用了,推荐使用find_library或者find_package...,那么这次虽然没设置A,也默认使用A上次的option值。...所以如果option有变化,要么删除上次执行cmake时产生的缓存文件,要么把所有的option都显式的指定其值。

    1.8K10

    云课五分钟-03第一个开源游戏复现-贪吃蛇

    如果有,您可以使用相应的构建工具(如make或cmake)进行编译。执行编译命令后,将生成可执行文件或游戏二进制文件。 运行游戏:当编译完成后,您将得到一个可执行的游戏二进制文件。...在终端中导航到游戏二进制文件所在的目录,并运行该文件。通常,您可以使用以下命令运行游戏: bash ....CMakeLists.txt文件是用于定义项目的构建规则和设置编译选项的配置文件,它被CMake构建系统使用。...set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) 这里设置了运行时输出目录,即生成的可执行文件将放置在构建目录下的bin文件夹中...add_executable({BIN_NAME} {SRC}) 用add_executable函数创建一个可执行文件,目标名称为变量BIN_NAME的值,源文件列表为SRC变量中存储的文件

    31530

    MySQL 8.0.0 Changes 版本变更事项(2016-09-12, 开发里程碑)(施工现场)

    角色允许为账户分配特权组,并为授予个人特权提供了一种方便的替代方法,既可以用于形式化用户所需的特权分配,并且可以实现: 角色可被创建删除。 角色能够进行拥有授予和撤销的权限。...如果不想要使用该链接器,请使用 CMake 选项 -DUSE_LD_GOLD=0。...配置事项 不兼容的变更: InnoDB: 之前,激活 innodb_read_only 系统变量只能为 InnoDB 存储引擎防止创建表和删除表。...在 mysql 系统数据库中使用创建删除操作修改数据字典表,但是这些表使用了 InnoDB 存储引擎,当激活 innodb_read_only 时不能进行修改。...这个语句不仅可以改变运行时变量值,还可以在数据目录中在名为 mysqld-auto.conf 的选项文件中写入变量设置。服务器启动时,会在处理玩其他选项文件后处理此文件

    36620

    面向 C++ 的现代 CMake 教程(四)

    如果找不到二进制文件,REQUIRED关键字导致配置出现错误而停止。 创建了一个自定义目标valgrind;它将在target二进制文件上执行 Memcheck 工具。...事实上,我们确实创建了一个在测试结束前没有被删除的对象。这就是为什么拥有广泛测试覆盖度如此重要的原因。 Valgrind 是一个非常实用的工具,但在处理更复杂的程序时可能变得有些冗长。...这个文件是用来在执行cmake --install时由 CMake 内部使用的。 注意 即将推出的 CMake 版本还将支持安装运行时工件和依赖集合,因此请务必查阅最新文档以了解更多信息。...它们可以用来安装公共头文件、文档、shell 脚本、配置文件,以及所有种类的资产,包括图像、音频文件和将在运行时使用的数据集。...对于终端用户来说,一种更加便捷的软件分发方式是使用包含编译工件和其他运行时所需静态文件二进制包。CMake 通过名为cpack的命令行工具支持生成多种此类包。

    48700

    obs windows 编译和打包

    我这里使用的是 obs-studio-25.0.1 下载并安装 cmake https://cmake.org/download/ 注:obs 新版本源码还对 cmake 版本有要求,如 obs-studio...cmake-gui 32位的操作如下: 设置源码目录 C:\Users\Administrator\Desktop\xiaoshiwei\obs-studio 设置编译后的二进制目录 C:\Users...\Qt5WebEngineWidgets 执行生成 打开项目,将自动打开已经生成好的 Visual Studio 工程文件 使用 vs 编译 ALL_BUILD 工程,编译好后提示 ==========...生成: 成功 40 个,失败 0 个,最新 0 个,跳过 0 个 ========== 注:有些老版本部分代码文件使用了 UTF-8-BOM 编码,需要对该项目属性的C/C++ -> 命令行部分,其他选项增加...验证,使用 VS 调试运行正常 注:如果代码依赖了 QWebEngineView 等动态库,运行时可能会报缺少这些依赖库,有以下两种解决方法: 生成对应的调试依赖 obs-studio-25.0.1

    1.6K40

    CMake file命令参数GLOB和GLOB_RECURSE

    如果文件已经存在,该命令覆盖已有的文件;如果文件不存在,它将创建文件。 APPEND选项和WRITE选项一样,将会写一条消息到名为filename的文件中,只是该消息会附加到文件末尾。...它也可以用在Intel的Hex和Motorola的S-记录文件;读取它们时,它们会被自动转换为二进制格式。可以使用NO_HEX_CONVERSION选项禁止这项功能。...参见cmake --help-policy CMP0009 查询跟多有用的信息。 使用递归查询的例子有: /dir/*.py - 匹配所有在/dir及其子目录下的python文件。...MAKE_DIRECTORY选项将会创建指定的目录,如果它们的父目录不存在时,同样也创建。(类似于mkdir命令——译注) RENAME选项对同一个文件系统下的一个文件或目录重命名。...(类似于mv命令——译注) REMOVE选项将会删除指定的文件,包括在子路径下的文件。(类似于rm命令——译注) REMOVE_RECURSE选项删除给定的文件以及目录,包括非空目录。

    3.6K10

    如何创建修改远程仓库 + 如何删除远程仓库 + 如何删除远程仓库中的某个文件文件夹 + 如何使用git将本地仓库连接到多个远程仓库

    原则:对待我们自己的本地仓库、远程仓库,我们应该删除创建、修改完全自由!(想想自己的东西都不能随心所欲的控制,何谈别人的呢!)...3、点击【Delete this repository】这样就可以删除该仓库了。删除仓库时,再让我们确认删除的仓库名。防止误删。...七、如何使用git将本地仓库连接到多个远程仓库 1、先在GiuHub(国外)、Gitee码云(国内) 和 Coding(国内) 上分别新建一个远程仓库,参考“二、创建远程仓库”。...2、创建一个本地仓库test,在某一个目录下右键 --> Git Bash Here,演示使用本地仓库test(远程仓库的名称和本地仓库的名称可以不一样,一样是为了方便,不一样也没事) ?...其余命令如下: 使用git在本地创建一个本地仓库的过程(位置:在本地桌面上)     $ makdir test       // 创建一个本地仓库     $ cd test           /

    7.4K20

    Android C++ 系列:NDK 减少 so 库体积方法总结

    使用 strip 使用 NDK toolchain 可以把调试的 C++ 符号表(Symbol Table)中数据删除,我们一般我们打成 APK 自动帮我们做这个工作,当然也可以手动设置: 手动的在链接选项中加入...编译器可以配置自动去除未使用的函数和变量,以下是配置方式: CMake: # 去除未使用函数与变量set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffunction-sections...◆ STL 的使用方式 对于 C++的 library,引用方式有 2 种: 静态方式(static) 动态方式(shared) 其中,静态方式在编译时会将用到的相关代码直接复制到目的文件中;而动态方式则会将相关的代码打成...so 文件,以便多次引用。...相反,则直接使用静态方式更节省空间。由于我们 SDK 的模块特别多,再加上整体 APK 里面已经有其他业务引入了动态库,所以我们用动态库的方式。

    1.6K30

    NDK学习笔记(1)——第一个jni程序

    下载完成后,在SDK目录下多出一个NDK文件夹: 然后需要配置下系统的环境变量: 在用户变量里添加刚刚存放ndk-bundle的路径。...其他一next就好。.../main/cpp/native-lib.cpp ) # 这个方法与我们要创建的so库无关而是使用NDK的Apis或者库,默认情况下Android平台集成了很多NDK库文件 # 所以这些文件是没有必要打包到...${log-lib} ) 库类型分为以下三种: STATIC:静态库,是目标文件的归档文件,在链接其它目标的时候使用。 SHARED:动态库,会被动态链接,在运行时被加载。...MODULE:模块库,是不会被链接到其它目标中的插件,但是可能会在运行时使用dlopen-系列的函数动态链接。 build.gradle 该文件也多出了一些代码。

    68140

    使用ProtocolBuffer实现网络协议二进制格式

    客户端在向服务器发起请求时会根据协议创建二进制数据块,然后依托tcp, udp, http等协议将二进制内容传递给服务器,后者根据协议的规则按照特定次序从接收到的二进制内存块中读取给定字段。...随着业务的发展,原先某些字段得删除时,协议解析代码又得修改,因此自定义协议解析在面对协议变化上因为需要重新编码因此提升工作量降低效率,特别时代码的修改非常容易引入错误。...3,步骤1的命令会在对应目录下创建一个build目录并进入该目录,然后执行命令: cmake -G “Visual Studio 15 2017” -DCMAKE_INSTALL_PREFIX=../....图1 cmake命令生成vs工程文件 4,找到protobuf.sln,使用vs打开,在工程中有一个名为INSTALL的项目,选中它,右键选择“生成”编译protobuf可执行文件和对应的头文件和lib...4.使用代码读写协议字段 要使用代码来读写协议规定好的数据结构,我们先使用vs创建一个工程,然后先执行如下配置: 1,在工程目录右键选中属性,在c/c++->常规中设置包含目录,如所示: 图7 设置包含目录

    72710

    使用CEF(七)详解macOS下基于CEF的多进程应用程序CMake项目搭建

    4)在项目根目录下创建cmake目录,并将步骤1中cef_binary_xxx/cmake/FindCef.cmake文件复制到cmake目录中: 项目根目录CMake配置 前期工作准备好以后,我们在项目根目录下创建...这两个文件的作用分别是定义一些CEF提供的变量和宏方法,以便在后续的CMake加载逻辑中使用。...文件二进制生成的路径。...如果读者使用CLion+CMake,会看到CLion会在项目根目录下生成cmake-build-debug目录,这个就是CMake生成文件目录,编译后的结果、CMake的过程文件都会在这个目录下找到(该目录其实就是...要让CMake不再使用内置的模板plist,而是使用我们生成的plist文件,我们使用参数MACOSX_BUNDLE_INFO_PLIST指定前面生成好的plist文件路径。

    57410

    小白学习MySQL - 数据库软件和初始化安装

    创建用户、用户组,(可能已存在,继续使用,或者删除重建) groupadd mysql useradd -g mysql mysql 3....三、二进制安装 介质下载,MySQL 5.7,我们选择当前最高的5.7.32,指定RHEL7平台,下载gz文件文件名为mysql-5.7.32-el7-x86_64.tar.gz, ? ?...创建用户、用户组,(可能已存在,继续使用,或者删除重建) groupadd mysql useradd -g mysql mysql 3....无论是源码安装,还是二进制安装,此时我们就有了数据库软件,如果要操作这个数据库,还需要初始化创建数据库。 初始化数据库 1....配置参数文件,需切换到mysql用户,创建my.cnf,因为我会在这台机器创建5.7和8.0两个数据库,所以加了前缀3306, su - mysql cd /mysql/3306/ touch 3306

    2.2K50

    Android NDK开发扫盲及最新CMake的编译使用

    Unix 下会使用 makefile 文件编译,Windows 下会使用 project 文件编译。...本篇文章主要描述后者的组合。(也是Android现在主推的) 1.2 ABI 是什么 ABI(Application binary interface)应用程序二进制接口。...(其实官方文档中大部分都是的,并没有使用 CMake) 幸运的是, Github上的官方示例 里面有个项目 hello-libs 实现了如何创建出静态库/动态库,并引用它。...$project/distribution/ 目录,你不需要再编译这个库,二进制文件已经保存在了项目中。...可以看下基本上分成了4个步骤引入: 分别创建静态库/动态库,直接引用已经有的 .a 文件 或者 .so 文件 创建自己应用的库 hello-libs 加入之前暴露头文件 链接上静态库/动态库 还是很好理解的

    2.3K30
    领券