我正在尝试设置我的项目以使用CMake正确编译。我的目录如下所示:root|-bin||-//WhereIwanttobuildCMakefrom-using'cmake..'|-build||-|-include||-database|||-database.h|-src|-database||-database.cpp|-main|-main.cpp随着我的项目越来越大,我的子目录肯定会增长,并且认为CMake可能是学习的好主意。目前我只能让CMake在我的src/中没有子目录的情况下工作。但是,我确实希望这个项目能够发展成许多子目录。每个目录中是否需要多个CMakeLists.t
我目前在Windows上安装了cmake、clang和ninja。我正在尝试使用CMake生成一个ninja构建文件来编译一个非常简单的helloworld程序。我的CMakeLists.txt看起来像这样:cmake_minimum_required(VERSION2.8)project(test_project)add_executable(mainmain.cpp)main.cpp是一个简单的helloworld程序。在命令行我运行这个:cmake-GNinja..我得到以下错误:--TheCcompileridentificationisClang3.5.0clang.exe:
我一直在使用C++和CMake构建跨平台应用程序。不幸的是,许多库不包含CMake项目描述。例如Google支持的项目经常使用GYP.以下是我针对这个问题采取的一些方法:在网络上查找库的CMake项目描述使用CMake编写项目描述查找或编写库的CMakeLists.txt描述是一个维护问题。随着库的更新,我的CMake描述也必须更新。此外,图书馆作者创建的项目文件更可能是正确的。我应该如何将GYP项目具体集成到基于CMake的软件中?在CMake中复制项目描述是最好的方法,还是我缺少CMake的某些功能?在CMake中处理此类问题的一般方法有哪些?那些包含一组用于各种平台/IDE的项目
我可以在cmake中使用一个变量来使其表现得像通过了-q选项一样吗?这会很好,因为我有一个非常模块化的构建,它会使cmakes输出变得困惑。我在一个c++项目中使用它。 最佳答案 从cmake3.1开始,设置CMAKE_INSTALL_MESSAGE也非常有用。例如,set(CMAKE_INSTALL_MESSAGELAZY)将跳过--Up-to-date:消息。 关于build-告诉cmake保持安静,我们在StackOverflow上找到一个类似的问题:
我正在尝试在CMake中添加一个生成一些文件的自定义构建步骤。我还没有找到它是如何工作的描述。我有一个项目,其中源文件、头文件和实现文件必须由ODBforC++生成。ODB将类头作为参数并生成我想在我的项目中使用的源文件。现在我的CMakeLists.txt中有以下命令:add_custom_command(TARGET${PROJECT_NAME}PRE_BUILDCOMMANDodb-o/home/david/dev/--stdc++11-I/home/david/dev/-dsqlite--generate-query--generate-schema${PROMOTER_LIB
我想构建LLVMclang编译器,但CMake最终出现以下错误消息:CMakeErroratCMakeLists.txt:256(message):Unexpectedfailureexecutingllvm-build:Traceback(mostrecentcalllast):File"C:/.../llvm/utils/llvm-build/llvm-build",line3,inimportllvmbuildFile"C:\...\llvm\utils\llvm-build\llvmbuild\__init__.py",line1,infrommainimportmainImp
我正在尝试为我的源代码树设置一个基于CMake的并行构建,但是当我发布时$cmake.$make-j2我明白了:jobserverunavailable:using-j1.Add'+'toparentmakerule作为警告。有没有人知道是否有可能以某种方式修复它? 最佳答案 在生成的Makefile中,当调用子make时,它需要使用$(MAKE)(不仅仅是'make')或者在该行之前加上一个+。也就是说,规则应如下所示:mysubdir:$(MAKE)-Cmysubdir或者像这样:mysubdir:+make-Cmysubd
我得到了以下设置。我将使用MPI和其他使用CUDA的东西来扩展用C++编写的框架。该项目使用cmake进行构建。我想避免为我的扩展使用库并从我的cuda源构建目标文件。之后,我想链接这些目标文件和用其他编译器编译的其他一些文件。有没有人知道如何实现这一目标?我看过http://code.google.com/p/cudpp/wiki/BuildingCUDPPwithCMake获取有关如何将CUDA与cmake一起使用的概述,但此解决方案也使用库。 最佳答案 可以使用较新版本的cmake附带的CUDA支持来编译目标文件。您使用cud
我的项目中有两个名为Test4的文件:结构.h结构.c我想创建一个静态库,其他想要使用这些文件的项目可以加载该库。这是我目前的CMake文件:cmake_minimum_required(VERSION3.6)project(Test4)set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}-std=c++11")set(SOURCE_FILESStructure.cStructure.h)add_library(Test4STATIC${SOURCE_FILES})当我使用该CMake文件构建时,不会生成静态库。什么都没发生。我做错了吗?我正在使用CLionID
我是这样使用CMake的:$mkdirbuild&&cdbuild$cmake..&&make&&atf-run|atf-report但要运行atf,我需要一些文件(例如/Atffile和test/Atffile),所以我正在寻找一种方法来在我的构建目录中导入所有此类文件。我试过了:file(COPY${PROJECT_SOURCE_DIR}/..DESTINATION${PROJECT_SOURCE_DIR}/..)但它不起作用。他们是一种简单/更清洁的方法吗? 最佳答案 假设“/Atffile”和“/test/Atffile”是