草庐IT

cmake-custom-command

全部标签

c++ - 如何正确地将库与 cmake 链接?

我无法将正在使用的其他库正确链接到我的项目中。我正在使用CLion,它使用cmake来构建它的项目。我正在尝试结合OpenGL使用几个库来纹理一些对象。我最初在VisualStudio中构建它,因为我无法弄清楚如何让cmake与Clion一起工作。但是,既然代码都可以正常工作(无论如何在VisualStudio中),我希望能够使用CLion,因为这是我首选的IDE。我还是cmake的新手,我不明白我的CMakeLists.txt做错了什么。这是我所拥有的:cmake_minimum_required(VERSION3.3)project(texture_mapping)find_pac

c++ - CMake:在静态库中包含库依赖项

我正在CMake中构建一个static库,它依赖于许多其他静态库。我希望它们都包含在输出.lib/.a文件中,这样我就可以将一个大的lib文件发送给客户。在VisualStudio2010中,有一个选项“链接库依赖项”,正是这样做的。但我在CMake中找不到如何操作。您可以通过CMake设置此标志,还是以其他方式获得相同的结果?我试过target_link_libraries(...)和add_dependencies(...),但CMake似乎只是忽略了静态库的这一行。 最佳答案 好的,我有一个解决方案。首先,重要的是要认识到静态

c++ - Visual Studio 2017、Boost 和 CMake 的版本号

FromtheBoostmailing列表我了解VS2017有以下我们可能最感兴趣的版本号:VisualStudio15.0cl;C/C++Compiler19.10PlatformToolset:v141以下宏在VisualStudio2017IDE中定义:CrtSDKReferenceVersion14.0MSBuildToolsVersion15.0PlatformToolsetVersion141VCToolsVersion14.10.25017VisualStudioVersion15.0在编译期间,以下变量被#define'd:_MSC_VER1910_MSC_FULL_V

c++ - 如何启用/标准 :c++17 in VS2017 with CMake

我正在尝试使用CMake将/std:c++17编译器标志添加到VS2017。到目前为止,我使用的是“现代”跨平台方式:set(CMAKE_CXX_STANDARD14)set(CMAKE_CXX_STANDARD_REQUIREDON)set(CMAKE_CXX_EXTENSIONSOFF)#-std=c++11insteadof-std=gnu++11set(MY_CXX_COMPILE_FEATUREScxx_generic_lambdascxx_range_forcxx_strong_enums)add_library(mylibINTERFACE)target_compile_

c++ - 将 "Qt5Widgets"的安装前缀添加到CMAKE_PREFIX_PATH

我不太了解cmake,我正在尝试使用cmake和Qt构建客户端。收到以下错误:CMakeErroratalethzero/CMakeLists.txt:26(find_package):Bynotproviding"FindQt5Widgets.cmake"inCMAKE_MODULE_PATHthisprojecthasaskedCMaketofindapackageconfigurationfileprovidedby"Qt5Widgets",butCMakedidnotfindone.Couldnotfindapackageconfigurationfileprovidedby"

c++ - cmake .. 做什么?

我得到了Box2D项目源代码,并想编译它的测试平台部分。项目文件夹包含以下文件夹:freeglugluitestbed(ademo)helloword(ademo)Box2D构建CMakeFiles在所有不同的文件夹中有很多CMakeLists.txt。我在想我应该cmake所有这些文件,以便在所有需要的地方创建make文件。我读了这个(作为我想做的指示):wgethttp://box2d.googlecode.com/files/Box2D_v2.2.1.zipunzipBox2D_v2.2.1.zipcdBox2D_v2.2.1/Buildcmake..makecmake..做什么

c++ - QtCreator CMake 项目 - 如何显示所有项目文件

我使用QtCreator打开CMake项目。除了CMakeLists.txt之外的一些目录仅包含头文件*.h,对于这些目录,项目TreeView中的QtCreator仅显示CMakeLists.txt。如何解决?我需要查看来自QtCreator的所有项目文件。 最佳答案 将项目视为文件系统根本不是解决方案,因为您的项目编辑器设置例如不适用。而且我不喜欢将标题添加到可执行目标,因为它们实际上不属于那里。您有效地削弱了项目文件以与一个特定的IDE很好地配合......不好。恕我直言,更清洁的选择是:FILE(GLOB_RECURSELi

c++ - #ifdef DEBUG 与 CMake 独立于平台

我正在使用CMake在Windows(VisualStudio)以及Linux机器(gcc)上构建我的项目。我想将一些代码标记为“仅调试”,例如#ifdefDEBUG//somelogginghere#endif问题是:在CMake“调试”构建类型的所有平台上,哪些编译器定义可用?DEBUG似乎不存在。(我只想在构建类型为Debug时进行日志记录或其他任何内容。) 最佳答案 CMake默认将-DNDEBUG添加到CMAKE_C_FLAGS_{RELEASE,MINSIZEREL}中。因此,您可以使用#ifndefNDEBUG。

c++ - Eclipse 中的 Cmake 支持

根据this,我有3个选项可以在EclipseCDTforC++中使用cmake。它们都不起作用。首先是因为我使用了外源构建,并且生成器的局限性非常糟糕。此外,它使用硬编码的Eclipse项目模板,因此非常脆弱。第二个是穷人版的cmake支持。实际上,它并没有给Eclipse增加任何值(value)。第三个根本行不通。我无法制作现有的cmake项目。我可以创建一个新的,但不能打开现有的。此外,项目属性窗口中的cmake属性会引发异常,仅此而已。甚至没有出现。Eclipse中是否有任何对cmake的良好支持?或者任何其他强大的IDE?喜欢添加CmakeList.txt并创建相应的项目?我

c++ - CMake 中的预期构建失败测试

有时最好检查某些东西是否无法构建,例如://Nextlineshouldfailtocompile:can'tconvertconstiteratortoiterator.my_new_container_type::iteratorit=my_new_container_type::const_iterator();是否可以将这些类型的东西合并到CMake/CTest中?我在CMakeLists.txt中寻找类似的东西:add_build_failure_executable(test_iterator_conversion_build_failureiterator_convers