草庐IT

cmake-custom-command

全部标签

c++ - 如何使用 CMake 通过命令行定义 C++ 预处理器宏?

我尝试在CMake的命令行中设置预处理器宏。我试过了:setgenerator="VisualStudio82005"setparams=-DMY_MACRO=1cmake.exe-G%generator%%params%..\some_project但它既没有在我编译时定义,也无法在CMake生成的文件中找到名称MY_MACRO,除了CMakeCache.txt它存在于形式:MY_MACRO:UNINITIALIZED=1我该怎么做? 最佳答案 一个不错的选择是定义一个cmake选项:OPTION(DEFINE_MACRO"Opt

ruby-on-rails - -bash : ruby: command not found

hyperrjas@serv1:~$rbenvglobal1.9.3-p392hyperrjas@serv1:~$rbenvlocal1.9.3-p392hyperrjas@serv1:~$whichruby-build/usr/local/bin/ruby-buildhyperrjas@serv1:~$rbenvversions*1.9.3-p392(setby/home/hyperrjas/.ruby-version)hyperrjas@serv1:~$rbenvversion1.9.3-p392(setby/home/hyperrjas/.ruby-version)hyperrj

ruby - 可靠的 : define when a command doesn't have to run (building ruby from source)

这是我的剧本中负责从源代码下载和构建ruby​​的部分:vars:ruby_version:'2.0.0-p247'ruby_url:'ftp://ftp.ruby-lang.org//pub/ruby/2.0/ruby-{{ruby_version}}.tar.gz'tasks:-name:Ensurerubydependenciesareinstalledapt:pkg=$itemstate=installedupdate-cache=yessudo:yeswith_items:-build-essential-git-core-libreadline6-dev-libyaml-d

ruby - 从 Ruby 的反引号捕获 "command not found"错误?

有没有办法在Ruby脚本中捕获“找不到命令”错误?例如,给定:output=`foo`如何捕获未安装foo的情况?我希望我可以rescue异常,但这似乎在1.8.7上不起作用。是否有不同的调用子流程的方式来执行我想要的操作?或者有不同的方法吗?更新抱歉,我忘了提到一个隐藏的要求:我希望解释器不会将命令行泄露给用户(它可能包含敏感数据),因此为什么首选异常捕获方法。再次为第一次遗漏这一点而道歉。 最佳答案 使用返回码!irb(main):001:0>`date`=>"Mo24.Jan16:07:15CET2011\n"irb(main

c++ - CMake:何时使用 add_definitions 而不是 set_target_properties(目标 PROPERTIES COMPILE_DEFINITIONS 定义)

在CMake文档中,我们可以阅读:add_definitionsAddsflagstothecompilercommandlineforsourcesinthecurrentdirectoryandbelow.COMPILE_DEFINITIONSpropertyondirectoriesCOMPILE_DEFINITIONS:Preprocessordefinitionsforcompilingadirectory'ssources.COMPILE_DEFINITIONSpropertyontargetsCOMPILE_DEFINITIONS:Preprocessordefiniti

c++ - CMake:何时使用 add_definitions 而不是 set_target_properties(目标 PROPERTIES COMPILE_DEFINITIONS 定义)

在CMake文档中,我们可以阅读:add_definitionsAddsflagstothecompilercommandlineforsourcesinthecurrentdirectoryandbelow.COMPILE_DEFINITIONSpropertyondirectoriesCOMPILE_DEFINITIONS:Preprocessordefinitionsforcompilingadirectory'ssources.COMPILE_DEFINITIONSpropertyontargetsCOMPILE_DEFINITIONS:Preprocessordefiniti

c++ - 使用 CMake 将资源(例如,着色器代码;图像)嵌入到可执行文件/库中

我正在用C++编写一个应用程序,它依赖于我项目中的各种资源。现在,我有从生成的可执行文件到源中硬编码的每个资源的相对路径,这允许我的程序打开文件并读取每个资源中的数据。这工作正常,但它要求我从相对于资源的特定路径启动可执行文件。因此,如果我尝试从其他任何地方启动我的可执行文件,它将无法打开文件并且无法继续。是否有一种可移植方法让CMake将我的资源嵌入到可执行文件(或库)中,以便我可以在运行时简单地在内存中访问它们,而不是打开路径脆弱的文件?我找到了relatedquestion,并且看起来嵌入资源可以通过一些ld魔法来完成。所以我的问题是如何使用CMake以可移植、跨平台的方式做到这

c++ - 使用 CMake 将资源(例如,着色器代码;图像)嵌入到可执行文件/库中

我正在用C++编写一个应用程序,它依赖于我项目中的各种资源。现在,我有从生成的可执行文件到源中硬编码的每个资源的相对路径,这允许我的程序打开文件并读取每个资源中的数据。这工作正常,但它要求我从相对于资源的特定路径启动可执行文件。因此,如果我尝试从其他任何地方启动我的可执行文件,它将无法打开文件并且无法继续。是否有一种可移植方法让CMake将我的资源嵌入到可执行文件(或库)中,以便我可以在运行时简单地在内存中访问它们,而不是打开路径脆弱的文件?我找到了relatedquestion,并且看起来嵌入资源可以通过一些ld魔法来完成。所以我的问题是如何使用CMake以可移植、跨平台的方式做到这

c++ - Visual Studio 错误 D8016 : '/ZI' and '/Gy' command-line options are incompatible

我正在处理的项目有问题。尽管代码是正确的,但我无法构建它,因为出现以下错误ErrorD8016'/ZI'and'/Gy-'command-lineoptionsareincompatibleLoadReportC:\LoadReport\LoadReport\cl我的VisualStudio版本是2015年。任何想法都将不胜感激。 最佳答案 在配置属性中(Project➔Properties),“/ZI”在C/C++➔General➔DebugInformationFormat“/Gy”在C/C++➔CodeGeneration➔E

c++ - Visual Studio 错误 D8016 : '/ZI' and '/Gy' command-line options are incompatible

我正在处理的项目有问题。尽管代码是正确的,但我无法构建它,因为出现以下错误ErrorD8016'/ZI'and'/Gy-'command-lineoptionsareincompatibleLoadReportC:\LoadReport\LoadReport\cl我的VisualStudio版本是2015年。任何想法都将不胜感激。 最佳答案 在配置属性中(Project➔Properties),“/ZI”在C/C++➔General➔DebugInformationFormat“/Gy”在C/C++➔CodeGeneration➔E