草庐IT

cmake-custom-command

全部标签

c++ - 多个输出文件的 cmake add_custom_command 问题

在使用add_custom_command和多个输出文件时,我注意到cmake中存在一些潜在的不正确行为。我已经能够将问题隔离为一个最小的例子(见下文)。似乎当我在add_custom_command中指定了两个输出文件时,在某些情况下,第二个输出文件的上游依赖项没有被正确跟踪。cmakedocumentation明确提到允许多个输出文件。这里有趣的是,交换输出文件的顺序会导致不同的行为,这表明第一个OUTPUT文件的处理方式不同。请参阅下面展示此行为的玩具示例。第一次调用make运行良好。触摸a.txt后,Copyingbaz.cpptobaz2.cpp规则不会在第一次调用make时

c++ - 使 : g++: Command not found

我查看了类似的帖子,有人解决了我的问题。我很简单,但我是eclipse的新手。我正在尝试做一个简单的例子,我遇到了这个问题。make文件就是这个all:hello.execlean:rmHello.oHello.exehello.exe:hello.og++-g-ohello.exehello.ohello.o:g++-c-gmain.cpp我得到这个错误“make:g++:Commandnotfound”感谢您的帮助。 最佳答案 您需要从GNU安装开发工具。我假设您在Windows上,在这种情况下您有两个选择:cygwin和min

c++ - 如何以编程方式迭代所有 CMake 目标?

有没有办法从顶层CMakeLists.txt中获取CMake项目的所有目标,即以编程方式迭代目标?我想这样做的原因是对每个目标应用一些XCode特定的设置。.if(CMAKE_GENERATORMATCHES"Xcode")include(sanitize_xcode)sanitize_xcode(myTarget)endif()仅供引用-清理模块看起来像这样。.macro(set_xcode_propertyTARGETXCODE_PROPERTYXCODE_VALUE)set_property(TARGET${TARGET}PROPERTYXCODE_ATTRIBUTE_${XCO

c++ - CMake:如何设置源、库和 CMakeLists.txt 依赖项?

我有几个项目(所有项目都使用CMake从相同的源树结构构建)都使用自己的数十个支持库的组合。所以我想到了如何在CMake中正确设置这个问题。到目前为止,我只找到CMakehowtocorrectlycreatedependenciesbetweentargets,但我仍然在使用全局依赖项(项目级别确实知道一切)或本地依赖项(每个子级别目标只处理自己的依赖项)设置所有内容之间挣扎。这是我的目录结构的简化示例,以及我目前使用CMake和本地依赖项提出的内容(示例仅显示一个可执行项目App1,但实际上还有更多App2、App3等):Lib+--LibA+--Inc+--a.h+--Src+-

c++ - 如何在 CMake 项目中使用外部 DLL

我一直在互联网上搜索,但找不到任何可以回答我的问题的内容(或者我不知道要搜索什么)。无论如何,这是我的问题:我想在我的CMake项目中使用3rdParty库(.dll文件)。我想要包含的库(https://github.com/pitzer/SiftGPU)是开源的,并且还提供我想要使用的二进制文件,并且如果相关的话,还可以使用CMake作为构建工具。我希望我已经足够清楚了。 最佳答案 首先,编辑您的CMakeLists.txt以包含您的第三方库。您需要两件事:头文件的路径和要链接的库文件。例如:#searchingforinclu

c++ - cmake glob包含同时保留目录结构

我是cmake的新手,我正在尝试安装.hpp文件,同时保留目录结构。目前为止FILE(GLOBfiles"${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp""${CMAKE_CURRENT_SOURCE_DIR}/include/MyLib/*.hpp""${CMAKE_CURRENT_SOURCE_DIR}/include/MyLib/detail/*.hpp"install(FILES${files}DESTINATIONinclude)所有文件都已找到,但目录层次结构已展平。FWIW我试图模拟的bjam命令是installheaders:../i

c++ - MinGW: "gcc is not recognized as an internal or external command"

我下载并安装了MinGW。我使用图形程序安装C++编译器。在Windows命令行中键入gcc会打印:gccisnotrecognizedasaninternalorexternalcommand我检查了,gcc.exe存在于C:\MinGW\bin中。怎么了? 最佳答案 虽然是一个老问题,但这里的答案都没有帮助我。我发现到达目的地的唯一路线是在命令提示符下输入以下行:复制:设置Path=C:\MinGW\bin;%PATH%之后,只需输入gcc-v。希望这对解决我遇到的问题的人有所帮助!

c++ - 在使用 cmake 构建的项目中添加头文件和 .cpp 文件

我已经使用cmake和一些库构建了一个项目。但是我想在要编码的项目中添加一些头文件和.cpp文件。最简单的方法是什么?我可以只创建一个.cpp和头文件,然后在VisualStudio中再次构建项目?还是因为项目是使用cmake构建的,所以我不能? 最佳答案 您可以将所有头文件/源文件放在同一个文件夹中并使用类似的东西file(GLOBSOURCESheader-folder/*.hsource-folder/*.cpp)add_executable(yourProj${SOURCES})这样,您可以通过以下两种方法之一将新添加的he

c++ - 如何在 CMake 中更改 Win32 构建的可执行输出目录?

我的问题是这样的:我正在使用VisualStudio2010开发一个小型解析器。我使用CMake作为构建配置工具。但我发现默认的可执行构建行为,不方便。我想要的是,让我的最终程序位于:E:/parsec/bin/..exe而不是E:/parsec/bin//.exe你会如何使用CMake做到这一点? 最佳答案 有几种选择:编译后复制可执行文件为您的可执行文件自定义输出目录编译后复制可执行文件成功构建后,您可以复制可执行文件(请参阅初学者答案),但使用安装目标可能会更好:使用install命令指定将被复制到CMAKE_INSTALL_

c++ - 附加到 CMAKE_C_FLAGS

我将CMake用于一个有两个版本的项目,其中一个需要-lglapi,另一个不需要。到目前为止,我们使用的线条如下所示:SET(CMAKE_C_FLAGS"-O3-xSSE3-restrict-lpthread-lX11-ldrm")SET(CMAKE_CXX_FLAGS"-O3-xSSE3-restrict-lpthread-lX11-ldrm")我在我的CMakeList.txt中正好在这些行之后添加了一个if语句:if(SINGLE_MODE)SET(CMAKE_C_FLAGS${CMAKE_C_FLAGS}"-lglapi")SET(CMAKE_CXX_FLAGS${CMAKE_