这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:DebugandReleaseLibraryLinkingwithCMAKE(VISUALSTUDIO)这里cmakenewb,我想告诉target_link_libraries在使用debug配置时链接一个debuglib,在release配置下编译时链接一个releaselib。我如何告诉cmake为调试配置链接不同的lib文件?
简而言之——当二进制文件/库仅提供一个makefile时,是否可以使用CMake从项目中构建外部二进制文件/库?所以你有自己的项目,源文件树中的一堆CMakeLists.txt和这个带有源文件的外部库。你的资源依赖于这个库,一些二进制文件/库想要链接到它。如果这个外部库只有一个makefile或VisualStudio项目文件而没有给定的CMakeLists.txt,将如何编译它?是否有机会从CMake中调用configure/make?或者在Windows下使用VS运行批编译?还是别的?感谢您在这方面的帮助... 最佳答案 听起来
我正在尝试使用CMake添加一个自定义目标,它为每个给定的.cpp文件执行一个命令。仅当源文件本身或包含的源文件之一发生更改时,才应重新执行该命令。据我所知,要实现这一点,我需要一个所有包含文件的列表,并将它们添加到属于我的自定义目标的add_custom_command()调用的DEPENDS选项中。那么有没有内置的方法来获取包含文件的列表?我知道add_custom_command()函数的IMPLICIT_DEPENDS选项,但它只适用于Makefile生成器。我想让它适用于所有生成器。谢谢你的时间编辑:根据要求,我将发布一些cmake代码来展示我想要实现的目标。我想添加一个自定
我正在对C++存储库使用CMake进行一些试验,但我遇到了一些麻烦,试图在不使用大量额外CMake代码的情况下轻松地针对同一源代码树中的库构建应用程序。源码树的布局基本如下:ROOTlibs/lib1/lib2/lib3/apps/app1/app2/app3/库相互独立,应用程序可以链接到一个或多个库。目前我有一个根目录CMakeLists.txt,它将每个应用程序和库列为一个子目录,这样如果库被更改并且应用程序被重建,库也会被重建。这工作正常并且CMake链接它而无需我指定库所在的位置,但我没有看到对包含目录执行类似操作的方法。有没有通用的方法来处理这个问题?我不希望每个应用程序的
我希望CMake找到add_executable的header并找到target_link_libraries的.so文件。我要找的头文件是lcm-cpp.hpp(在ubunthu上)ls/usr/local/include/lcm/eventlog.hlcm_coretypes.hlcm-cpp.hpplcm-cpp-impl.hpplcm.h我项目根目录下的CMakeLists.txt文件cmake_minimum_required(VERSION2.6)project(libFoo)include_directories(include/usr/local/include/lcm
这是我在StackOverflow上的第一篇文章,如果我的问题有问题,请深表歉意。我是CMake的新手,我在尝试将gtest(GoogleTest)导入C++项目时遇到了问题,该项目在库中使用了现有的gtest目录。我的根CMakeLists.txt文件是这样的(我的更改是在“开始更改”和“结束更改”之间进行的):cmake_minimum_required(VERSION2.6)project(nifi-minifi-cpp)set(PROJECT_NAME"nifi-minifi-cpp")set(PROJECT_VERSION_MAJOR0)set(PROJECT_VERSION
编辑:将此发布到他们的问题跟踪器并与一些CMake开发人员一起完成后,这实际上不是CMake问题。我的MSBuild安装出现问题,导致它返回“操作成功完成”。错误。总体上仍然没有解决问题,但这缩小了潜在原因的范围。我正在尝试使用MSVisualC++构建工具2015在Windows上构建一个CMake项目(注意:不是完整的VisualStudio)。然而,CMake显然无法找到cl.execmake..--Buildingfor:VisualStudio142015--TheCcompileridentificationisunknown--TheCXXcompileridentifi
C++Builder(10.2.3)的当前Embarcadero版本附带Clang32和64位C/C++编译器。Clang版本号称是3.3,(http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Win32_Clang-enhanced_Compilers)。我正在研究使用这些编译器和CMake编译VTK8.0和其他库。但是,CMake附带的“系统”CMake文件(Windows-Embarcadero.cmake)并未针对Clang配置,而是针对较旧的bcc32编译器配置。Embarcadero建议将其分发的“Windows-Embarc
我已经使用以下方法升级了我的GCC:$sudoadd-apt-repositoryppa:ubuntu-toolchain-r/test$sudoapt-getupdate$sudoapt-getinstallgcc-8g++-8$sudoupdate-alternatives--install/usr/bin/gccgcc/usr/bin/gcc-870--slave/usr/bin/g++g++/usr/bin/g++-8运行这些命令中的任何一个:$gcc--version$g++--version$c++--version$/usr/bin/gcc--version$/usr/b
我发现自己在使用Eclipse时处于一种奇怪的模式。我有一个项目依赖于Eclipse项目中未正确考虑的资源,因此如果我仅更新依赖项中的header,Eclipse在收到命令时拒绝构建,显然是因为它认为没有必要。结果,我最终不断地向文件添加一个空间并保存以使CDT执行我的命令。虽然可以将依赖项集成到项目设置中,但项目偶尔会被CMake自动生成工具(我对修补它没有兴趣)重写,这会覆盖配置,并要求我重新配置一次又一次的依赖。我希望能够做的只是简单地告诉Eclipse它应该忽略它认为应该发生的事情并服从构建命令,并让底层的make系统完成它的工作(确定什么应该和不应该'不会被build)。长话