草庐IT

language-cmake

全部标签

c++ - 使用 CMake 制作跨平台库?

CMake难用吗?我一直在使用Windows和MSVC++开发一个库。我在Linux和OSX中测试了我的代码,方法是从每个文件中繁琐地创建对象并从中创建一个库。我有几个目录例如:Agui->Widgets->Button->ListBox->Backends->Allegro我想要的是,例如,如果我在Windows上,它会自动生成一个msvc项目,其中包含所有这些目录和文件,并准备好进行编译。在Linux和OSX上我希望能够做类似的事情制作制作使用CMake可以做到这一点吗?考虑到我的情况,这很容易做到。谢谢 最佳答案 是的,这正是

为什么Cmake在QT创建者中过早结束?

我是QTCreator的新手,想将现有的CMAKE项目导入其中。我将cmakelists.txt文件作为一个项目加载,并且在运行cmake后,它像我希望的那样找到了我的文件。但是,当它构建时,它似乎在一秒钟后过早结束。这是日志:17:11:46:RunningstepsforprojectMy-GUI...17:11:46:Starting:"C:\ProgramFiles\JetBrains\CLion2017.1.3\bin\cmake\bin\cmake.exe"--build.--targetclean17:11:46:Starting:"C:\ProgramFiles\JetBrai

c++ - cmake os x 失败 ar 没有特定的存档成员

我有一个简单的cmake项目,我无法在OSX10.8.4上编译。cmake/make过程在Linux上运行良好,但在OSX上我收到此错误:LinkingCXXstaticlibrarylibImageFilter.aar:noarchivemembersspecified...make[2]:***[lib/libImageFilter.a]Error1make[1]:***[lib/CMakeFiles/ImageFilter.dir/all]Error2make:***[all]Error2我在两个平台上都使用EclipseCDT4GeneratorUnixMakeFile。这似乎

c++ - 在 ubuntu 12.04 上设置 Xerces 以与 cmake 和 clang 一起使用

我想在我的项目中使用Xerces,我在cmake和clang的帮助下编译了它。我所做的是:下载源将其解压缩到名为“xerces-c-3.1.1”的文件夹cd进入那个文件夹./configuremakemakeinstall然后我写了LINK_DIRECTORIES(/usr/local/lib)进入我的CMakeLists.txt和#include进入我的main.cpp。它编译正常,但链接不起作用。我得到以下结果:LinkingCXXexecutableDG5_RECMakeFiles/DG5_RE.dir/main.cpp.o:Infunction`xercesc_3_1::XML

c++ - 如何在 Windows 上备份 cmake gui 的生成器缓存/设置?

我们正在为opencv开发一个内部使用的模块,我们不希望将完整的opencvcheckinTFS。有什么方法可以保存cmakegui应用程序的所有设置,例如当新开发人员加入团队时,他可以轻松地下载opencv并包含用于生成解决方案文件的设置? 最佳答案 在您的构建目录中有一个CMakeCache.txt文件。它存储在gui应用程序中更改的值。如果将其复制到新构建并重新加载缓存,设置应该会恢复并且您可以生成构建文件。 关于c++-如何在Windows上备份cmakegui的生成器缓存/设置

c++ - CMake 测试 : was a library compiled/linked against libc++ or libstd++?

我正在使用cmake来管理我使用第三方库的项目。此库可能已针对libc++或libstd++(取决于版本)进行编译/链接。我知道如何告诉cmake将我的项目编译/链接到libc++或libstdc++,但我不知道如何检查我正在使用的库是否是根据libc++或libstd++编译/链接的。有任何cmake命令可以检查吗? 最佳答案 对于共享库,您可以使用GetPrerequisites用于测试库是否依赖于libstc++或libc++的标准模块。例如,以下代码测试boost的program_options库是否针对libstc++或l

c++ - 对于 Cmake,您可以使用 `add_compiler_flags()` 命令修改发布/调试编译器标志吗?

在add_compile_options()的手册页中,我没有看到任何关于如何修改发布/调试编译器标志的提及。您可以使用add_compiler_options()修改发布/调试编译器标志吗?如果是,如何?如果不是,推荐的规范方法是修改therelease/debugcmakevariables[1]asdescribedhere吗?[1]即设置cmake变量CMAKE__FLAGS_(对于langc/c++它将是:CMAKE_CXX_FLAGS_RELEASE、CMAKE_CXX_FLAGS_DEBUG、CMAKE_C_FLAGS_RELEASE、CMAKE_C_FLAGS_DEBU

c++ - 将 Assets 目录从源复制到 CMake 中的构建目录

我正在尝试用C++编写一个练习游戏。我为此使用CMake,我的项目由我的IDE自动构建在一个单独的构建目录中。但是,我的assets文件夹没有被复制到新目录。目前,我正在尝试通过以下方式解决此问题:add_custom_command(TARGET${PROJECT_NAME}POST_BUILDCOMMANDcp-r${PROJECT_SOURCE_DIR}/assets${CMAKE_BINARY_DIR})但是,这似乎对结果完全没有影响,Assets目录仍然不出现在我的构建目录中。我怎样才能真正让它把这个Assets目录复制到我的构建位置?有没有一种更聪明的方法可以将我的程序指向

c++ - CMake:如何在安装了 VS2017 的情况下指定 VS2015.3 工具集

我安装了VS2017,同时安装了VS2017(v141)和VS2015.3(v140)工具集。我需要使用CMake生成一个解决方案,我希望CMake被“愚弄”,就像安装了VS2015一样,这样我就可以使用v140工具集构建项目。我知道这个问题可能与以下问题重复:Howcmakespecify"PlatformToolset"foraVisualStudio2015project?但它提供的解决方案对我没有帮助。错误信息是:SelectingWindowsSDKversion10.0.14393.0totargetWindows10.0.15063.TheCcompileridentif

c++ - 如何让 CMake 在构建之前运行 python 脚本,以便为我的项目生成要在构建中使用的文件?

我有一个python脚本,它解析项目目录中的所有C++源文件,在文件中查找一些内容,然后生成一个文件。这个python脚本工作正常,但我希望它在构建我的C++项目之前自动运行。所以基本上,我希望这个python脚本在每次构建之前运行,所以如果任何.h或.cpp文件已被更改。如果python脚本本身已被更改,我也希望它运行。我有问题中的python脚本,genenums.py,与我的C++源文件(例如main.cpp等)位于同一目录中。我已经尝试根据文档尝试使用add_custom_command,但我无法让cmake在任何情况下运行此python脚本。我不确定如何使这项工作正常进行,因