草庐IT

c++ - CMake + 库达 : compile cpp files in Cuda-mode (--x=cu)

假设我有一个文件,我们称它为foo.cpp,我的目标是在cuda模式下用nvcc编译这个文件。在命令行中,这可以通过调用轻松完成:nvcc--x=cufoo.cpp我正在苦苦挣扎的是让CMake做同样的事情。事实证明,CMake命令cuda_add_executable(foofoo.cpp)将过滤*.cpp文件并使用c++编译器(而不是nvcc)。请注意,将所有文件重命名为*.cu不是一种选择,因为代码库还必须支持非cuda构建。 最佳答案 在FindCUDAsourcecode我找到了一个选项来为特定的非.cu文件激活CUDA编

c++ - 将 CMake 与 LLVM 一起使用时出错

所以我正在尝试使用LLVM构建一个玩具编译器,并且我想使用CMake作为我的构建系统。我尝试使用sampleCMakeLists.txt来自LLVM的网站,但在运行cmake时遇到以下错误:CMakeErrorat/usr/share/llvm-3.8/cmake/LLVMConfig.cmake:178(include):includecouldnotfindloadfile:/usr/share/llvm/cmake/LLVMExports.cmakeCallStack(mostrecentcallfirst):CMakeLists.txt:4(find_package)CMake

c++ - 如何从 CMake 中隐藏 Visual Studio 中的目标

我正在使用CMake生成.sln。我想使用GoogleTest并使用那种代码来添加新测试:add_executable(my_testtest/my_test.cpp)target_link_libraries(my_testgtestgmock_main)add_test(NAMEmy_testCOMMANDmy_test)它工作正常,但是当我打开我的.sln时,我的所有目标都出现在解决方案资源管理器中:库、单元测试等。有没有办法隐藏这些目标? 最佳答案 您不能在cmake(ATM)中仅明确地做到这一点,但这里有一种方法可以更有效

c++ - 使用 boost::filesystem 添加 header 后,不再找到来自 google test 的单元测试

我有一个使用谷歌测试框架的单元测试项目,我的测试工作正常。但是现在我添加了boost::filesystem标题类似#include之后我的项目链接和编译正常,但是根本没有找到测试,当我运行测试时它给了我-Processfinishedwithexitcode-1073741515(0xC0000135)Emptytestsuite.如果我有这段代码:#includeTEST(Test,Test1){ASSERT_FALSE(true);}它工作得很好并找到失败的测试用例,但是如果我像这样添加boostheader:#include#includeTEST(Test,Test1){AS

c++ - 如何向 kdevelop 添加 -fpermissive 选项?

如何在KDevelopIDE中添加-fpermissive选项?还有-std=c++0x选项 最佳答案 点击打开配置并将您的标志添加到CMAKE_CXX_FLAGS变种。如果您希望为构建您的源代码的任何人设置这些标志,您可以set(CMAKE_CXX_FLAGS"-fpermissive-std=c++0x")在CMakeLists.txt. 关于c++-如何向kdevelop添加-fpermissive选项?,我们在StackOverflow上找到一个类似的问题:

c++ - CMake 与 Qt3d 用于 Qt5?

我已经从ubuntu-developers存储库(我在Ubuntu13.04下)安装了Qt5和Qt3d,我想用CMake编译一个非常简单的应用程序(我的版本是2.8.10.1)。Qthelloworld的工作CMakeLists.txt如下:cmake_minimum_required(VERSION2.8.8)project(testproject)#Findincludesincorrespondingbuilddirectoriesset(CMAKE_INCLUDE_CURRENT_DIRON)#InstructCMaketorunmocautomaticallywhenneed

c++ - 无法使用 fixup_bundle() 与 Qt 创建可移植包

我已经在其他帖子上搜索过这个问题,但目前还没有。所以我来了。我想创建一个可移植的包。便携,如“我可以在任何OSX机器上运行它,即使我需要的库(Qt)没有安装”。不幸的是,我不知道如何使用fixup_bundle()(这似乎是正确的工具)来实现这个目标。这是我最小的CMake生成的C++项目:主要.cpp#include#includeintmain(){QStrings("Hello,world!");std::coutCMakeLists.txtcmake_minimum_required(VERSION2.8.11)project(test)#ThatpartbecauseIuse

c++ - CMake:如何更改子目录项目目标的属性?

我试图在我的子项目(在本例中为poco)中组织目标,但我发现无法为ALIAS目标修改属性。我希望我的外部项目中的目标位于它们自己的文件夹中,而不是散布在项目树中的任何地方(比如visualstudio生成器)。有没有更简单的方法来添加具有我自己的属性的项目?所以代替:-CMakePredefinedTargets-ALL_BUILD-INSTALL-...-MyTargets-SomeLibrary-SomeExe-CppUnit-Crypto-Data-...我要:-CMakePredefinedTargets-ALL_BUILD-INSTALL-...-MyTargets-Some

c++ - 使用我自己的源目录生成 vs2010 项目文件

在我的大多数C++项目中,我想使用与VisualStudio默认目录结构不同的目录结构。即:/project/build#putvisualstudiosoluationandprojectfiles/src#onlyputthec++headerfilesandsourcefiles/bin#putthetargetexecutablefiles/debug/release/tmp/debug/release每次我在vs2010中创建一个解决方案时,我都会配置这些目录(例如OutputDirectory),但现在我对此感到很无聊。那么有没有工具可以根据我的config文件自动生成vs

c++ - 将包含目录添加到 AUTOMOC

我有一个包含QT4GUI的ROS包。我的代码在文件夹中项目名称/src/test/*.cpp我的包含在Project_name/include/test/*.h一些qt4mocs必须创建,因为一些头文件在它们的类中包含Q_OBJECT。我试过设置(CMAKE_AUTOMOCON)在cmake文件中,但它似乎不搜索/include/test/文件夹。AUTOMOC指出,要么在源文件中搜索moc_**.cpp文件,要么在头文件中检查Q_OBJECT。我还尝试在源文件中包含一个moc_***.cpp(例如/src/test/a.cpp)。所以它搜索了a.h但在include/test/a.h