草庐IT

cmake_link_libraries

全部标签

c++ - 带有 Visual Studio 和 cmake 的 CUDA

我正在使用CUDA8.0和VisualStudio2013。到目前为止,我一直在使用CMake构建我的VS-Solutions,并且运行良好。通常使用以下代码片段构建cuda项目:FIND_PACKAGE(CUDAREQUIRED)INCLUDE_DIRECTORIES(${CUDA_INCLUDE_DIRS})link_directories(${CUDA_INCLUDE_DIRS}/../lib/x64)CUDA项目正在运行,编译和运行没有任何问题。但是我在项目属性中缺少CUDAC/C++字段。当我直接在VS中创建一个VS-Solution时,我可以选择NVIDIA/CUDA8.0

c++ - 执行 cmake 目标的输出作为另一个依赖项

我有以下目录结构:.├──CMakeLists.txt├──generator│  ├──CMakeLists.txt│  └──main.cpp├──include└──src├──CMakeLists.txt└──mylib.cpp我想构建generator,然后使用generator生成将用于构建mylib的源文件。我试过这个:生成器/CMakeLists.txt:add_executable(genmain.cpp)add_custom_command(OUTPUT${CMAKE_BINARY_DIR}/generated.cppDEPENDSgenCOMMAND${CMAKE

c++ - 编译cuda文件报错: "runtime library" mismatch value 'MDd_DynamicDebug' doesn't match value 'MTd_StaticDebug' in vectorAddition_cuda. o

我尝试在Qt5.2和MSVC2012环境下编译一个cuda文件。在开始我的项目之前,我仔细阅读了问题并回复:CompilingCudacodeinQtCreatoronWindows.但是即使我简单地复制代码并在qt中生成2个文件,仍然会弹出一些错误/main.cpp/vectorAddition.cu错误是:errorLNK2038:mismatchdetectedfor'RuntimeLibrary':value'MDd_DynamicDebug'doesn'tmatchvalue'MTd_StaticDebug'invectorAddition_cuda.o我完全不知道如何修复这

c++ - 可以使用位置信息编写改进的 cmake 日志记录宏吗?

在调试cmake代码的时候,我发现自己写了类似下面的东西:message("[some_filename.cmake]:somemessageaboutwhatisgoingonhere.")在C++中,我使用宏来自动记录文件名和行号-这在cmake中可行吗?理想情况下,我想编写一个包含以下内容的宏:log_info("somemessageaboutwhatisgoingonhere.")它将打印到控制台:|info|some_filename.cmake[72]somemessageaboutwhatisgoingonhere. 最佳答案

c++ - 为什么 cmake_link_libraries 包含静态库?

我希望我的可执行文件再次链接到共享库(libmy_so.so),而共享库又是使用静态库(libmy_static_lib.a)构建的。当我做的时候target_link_libraries(my_exemy_so)我在编译时看到cmake在构建行上添加了libmy_static_lib.a。这不是我想要的,我不明白为什么需要这样做。有没有办法解决?LINK_PRIVATE似乎没有任何区别。我使用CMake2.8.9。 最佳答案 来自CMakedocumentationfortarget_link_libraries:target_l

c++ - cmake编译组

我有一个项目,其中编译生成许多可执行文件。我使用cmake生成Makefile。然后当我说make时,它们都被编译了。我知道我可以使用maketarget1来编译所需的目标。但我想将我所有的目标分成几组,并能够使用,比如makegroup_A来编译目标的一个子集。如何实现?该项目用C++编写,在Linux和OSX下开发。 最佳答案 查看CMake文档中的add_custom_target和add_dependencies。您可以将一个组添加为自定义目标,并将您想要构建的目标作为该组的依赖项。http://www.cmake.org/

c++ - 如何让 CMake 检查我的 header 是否自给自足?

设置我有一个使用CMake构建和运行良好的项目。我的项目设置是这样的:├──CMakeLists.txt|├──include/│└──standalone/│└──x.hpp|├──src/└──standalone/└──main.cpp我的header的内容是这样的://------x.hpp--------#pragmaonce#includeclassX{public:voidhello(){std::cout}};//-------main.cpp-------#includeintmain(){Xx;x.hello();}我使用以下CMakeLists.txtcmake_

c++ - 如何使用 cmake 一次运行所有 gtest 文件?

我有几个包含不同类测试的.cpp文件,看起来像这样:#includenamespace{//lotsoftests}intmain(intargc,char**argv){::testing::InitGoogleTest(&argc,argv);returnRUN_ALL_TESTS();}和一个如下所示的CMakeLists.txt文件:add_subdirectory(/usr/src/gtestgtest)include_directories(${GTEST_INCLUDE_DIR})add_executable(TestATestA.cpp)target_link_libr

c++ - cmake:读取并编译动态生成的 cpp 文件列表

我有一个自定义工具,可以处理给定的IDL文件列表并生成许多.cpp和.h文件作为输出。我想将这些文件添加到我的CMakeLists中要编译的事物列表中,并模拟这些文件对IDL的依赖性。为简单起见,我将声明对任何IDL文件的任何更改都应触发所有cpp/h的重新生成。我有一个自定义命令负责运行生成器工具并将所有IDL文件列为依赖项。我的问题是在构建时将后续的cpp/h文件列表放入cmake。无法从IDL文件的名称推断出将生成哪些cpp文件。但是,我的生成器工具会将生成的文件列表输出到文本文件。所以我的问题是:我如何指示cmake“从这个文本文件中读取并将内容添加为要编译的额外源文件和头文件

c++ - 使用 QT5_ADD_RESOURCES 和使用 CMake 进行多线程编译时损坏的资源 .cpp 文件

Qt5.0版本带来了一组更简单的命令来使用CMake构建Qt项目。参见http://qt-project.org/doc/qt-5/cmake-manual.html.需要使用命令QT5_ADD_RESOURCES包含项目的资源。如果我的资源文件名为Icon32.qrc,QT5_ADD_RESOURCES(RESOURCESIcon32.qrc)命令会自动将其转换为qrc_Icon32.cpp文件并定义一个${RESOURCES}变量,然后我可以将其包含到适当的目标中。这样做很完美,除了我在CDash中大约每20个构建出现一次编译错误。错误通常采用以下形式:/.../CMake/bui