草庐IT

cmake-custom-command

全部标签

将 C 代码与 CUDA 链接时出现 CMake 错误

我在使用cmake构建项目时遇到链接错误。该构建在使用makefile(手动生成/无cmake)的Linux上运行良好,但Windows构建给我带来了问题。这是一个演示我的方法的准系统示例:我在同一目录中有3个文件(kernel.cu、kernel.h、main.c)主.c:externvoidkernel_wrapper();intmain(){kernel_wrapper();}内核.h:#ifndefKERNELH#defineKERNELHextern"C"voidkernel_wrapper();#endif内核.cu:#include#include"kernel.h"__

c++ - CMake add_library(<lib> OBJECT <src>) 有环境变量吗?

CMake是2.8.8在编译时引入了OBJECT库类型:add_library(OBJECT)。这是一个有用的构造,能够将所有类编译为.o文件,但还没有将它们添加到库中。但是,我不确定它最终附加到生成的make文件中的命令的标志是什么。基本上,在执行add_library(SHARED)命令时,它会添加CMAKE_SHARED_LIBRARY_CXX_FLAGS指定的任何标志。我希望能够只为OBJECT库指定构建标志,而不必求助于更全局的标志,例如CMAKE_CXX_FLAGS_DEBUG和CMAKE_CXX_FLAGS_RELEASE。如果存在或计划这样的标志,有人知道吗?回顾:#h

c++ - 使用 CMake、CUDA 9.0 RC 和 Visual Studio 2017 安装带有 contrib 模块的 OpenCV 3.3.0

我正在尝试使用最新的CUDA9.0RC安装带有contrib模块的OpenCV3.3.0,因此它与MicrosoftVisualStudio2017兼容。CUDA安装很简单,并成功集成到VS2017中。我正在根据各种在线说明使我能够在没有CUDA的情况下成功构建contrib模块。但是,当我运行CMake时(确保我将其设置为VS2017x64,请参阅:CMake:CUDAlibrariesnotfoundwhencompilingOpenCV),我得到了经典的:CMakeError:Thefollowingvariablesareusedinthisproject,buttheyare

c++ - 基于构建配置的链接库[cmake]

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:DebugandReleaseLibraryLinkingwithCMAKE(VISUALSTUDIO)这里cmakenewb,我想告诉target_link_libraries在使用debug配置时链接一个debuglib,在release配置下编译时链接一个releaselib。我如何告诉cmake为调试配置链接不同的lib文件?

c++ - 使用 CMake 编译其他外部库(没有 CMakeLists.txt)

简而言之——当二进制文件/库仅提供一个makefile时,是否可以使用CMake从项目中构建外部二进制文件/库?所以你有自己的项目,源文件树中的一堆CMakeLists.txt和这个带有源文件的外部库。你的资源依赖于这个库,一些二进制文件/库想要链接到它。如果这个外部库只有一个makefile或VisualStudio项目文件而没有给定的CMakeLists.txt,将如何编译它?是否有机会从CMake中调用configure/make?或者在Windows下使用VS运行批编译?还是别的?感谢您在这方面的帮助... 最佳答案 听起来

c++ - 我可以在我的 cmake 代码中手动使用 CMake 的 cpp 文件依赖扫描器吗?

我正在尝试使用CMake添加一个自定义目标,它为每个给定的.cpp文件执行一个命令。仅当源文件本身或包含的源文件之一发生更改时,才应重新执行该命令。据我所知,要实现这一点,我需要一个所有包含文件的列表,并将它们添加到属于我的自定义目标的add_custom_command()调用的DEPENDS选项中。那么有没有内置的方法来获取包含文件的列表?我知道add_custom_command()函数的IMPLICIT_DEPENDS选项,但它只适用于Makefile生成器。我想让它适用于所有生成器。谢谢你的时间编辑:根据要求,我将发布一些cmake代码来展示我想要实现的目标。我想添加一个自定

c++ - 如何在大约 v2.8.8 的 cmake 中轻松包含来自库依赖项的 header

我正在对C++存储库使用CMake进行一些试验,但我遇到了一些麻烦,试图在不使用大量额外CMake代码的情况下轻松地针对同一源代码树中的库构建应用程序。源码树的布局基本如下:ROOTlibs/lib1/lib2/lib3/apps/app1/app2/app3/库相互独立,应用程序可以链接到一个或多个库。目前我有一个根目录CMakeLists.txt,它将每个应用程序和库列为一个子目录,这样如果库被更改并且应用程序被重建,库也会被重建。这工作正常并且CMake链接它而无需我指定库所在的位置,但我没有看到对包含目录执行类似操作的方法。有没有通用的方法来处理这个问题?我不希望每个应用程序的

c++ - 跟进: Boost serialized custom C++ object passed over ZeroMQ pull socket

这是我之前在Boost:De-serializingacustomC++objectpassedoverZeroMQpullsocket的另一个线程中提出的后续问题。该线程中的问题已根据提供的答案得到解决。现在我在运行时遇到了另一个问题。请看下面的说明。我是C++领域的新手,所以如果您告诉我除了我在问题陈述中描述的内容之外,对所提供代码的任何部分有任何改进的必要性,我将不胜感激。描述:我有一个名为GenericMessage的C++类,它只包含一个id和数据作为其成员(参见下面的代码片段2-GenericMessage.hxx)。我的目的是序列化此类的实例并通过实现推送模式的ZeroM

c++ - Cmake,在/usr/local/include 中找到头文件,在/usr/local/lib 中找到库

我希望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

c++ - CMake 与多个 gtest 冲突

这是我在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