草庐IT

cmake_link_libraries

全部标签

c++ - 如何在 CMake 中构建具有 2 个不同变量值的程序

我最近将我的Qt项目从qmake移植到了CMake。我的主程序包含一个值,该值取决于#define指令。我想通过CMake在外部指定define指令,并构建同一可执行文件的3个不同名称的版本。我应该怎么做?我看过set_target_properties但这只适用于库而不适用于可执行文件。例如我想要下面的程序,intmain(){cout它基于BUILDTYPE"define"编译成3种不同的风格(3种可执行文件)例如在我的CMakeLists.txt我想指定add_executable(myAppV1-DBUILDTYPE=1)add_executable(myAppV2-DBUIL

c++ - cmake 和 GenerateExportHeader

我正在尝试使用cmake中的GenerateExportHeader模块。我的CmakeLists.txt的一部分:add_compiler_export_flags()add_library(guiSHARED${gui_CPP}${gui_HPP})generate_export_header(gui)它对gui项目本身很有效,但是当我尝试在另一个项目中包含gui的.h文件时,找不到#include"gui_export.h"。这是显而易见的,因为gui_export.h是在gui的构建目录中创建的,它不在其他项目的包含路径中。简单的解决方案是将gui的构建目录添加到其他项目的包含

c++ - Cmake 找不到 Boost 库

我是C++中Cmake和boost库的新手。我正在做一个需要boost和Cmake的项目。我使用的是Cmake2.8.11版、MSVisualStudio2013和Boost1.54.0。当我尝试从Cmake进行配置时,出现以下错误:CMakeErroratC:/ProgramFiles/CMake2.8/share/cmake-2.8/Modules/FindBoost.cmake:1106(message):UnabletofindtherequestedBoostlibraries.Boostversion:1.54.0Boostincludepath:D:/boost_1_54

c++ - 指定 cmake 如何创建 visual studio 项目

我正在为我的项目设置cmake,并且我已经为它设置了一个测试项目。当它生成我的visualstudio2010项目时,我想将其作为我之前的项目。它创建了一个我不想要的ALL_BUILD和ZERO_CHECK项目。它将.h文件放入ExternalDependencies文件夹。我想要一个包含所有.h文件的IncludeFiles文件夹。我还想在不同的过滤器下对一些文件进行分组。就像在我的核心库中一样,我想将所有与数学相关的文件分组到一个文件夹中,并将所有与事件管理相关的文件分组到另一个文件夹中。在文件系统上,它将项目文件放在/Lib/src中。可能是因为我已将其组织在代码文件夹中,但我不

c++ - 如何将 CMake 包含和库添加到 Visual Studio 解决方案?

我使用CMake生成VisualStudio2010项目和解决方案文件。其实我可以设置不同的设置,如警告级别、增量构建标志等。来自CMake。但是我不能设置额外的包含和库,列在VC++目录配置选项卡中。实际上我必须手动设置这些目录。这是愚蠢的无聊...我尝试设置以下CMake变量:CMAKE_INCLUDE_PATH、INCLUDE_DIRECTORY但什么也没发生。如果我打开项目,解决方案的附加包含目录始终为空(仅给出标准MSVE设置)。我也厌倦了在可执行文件创建后设置这个变量,但这也没有效果。这就是我直接在cmake的标题中所做的文件:CMAKE_MINIMUM_REQUIRED(

android - 如何使用 'CMakeLists.txt' 中的 add_library 将整个文件(.cpp、.h 等)包含在目录中

这个问题在这里已经有了答案:AutomaticallyaddallfilesinafoldertoatargetusingCMake?(5个答案)关闭5年前。在我的项目中,我使用的是cpp和.h文件,它们都位于不同的文件夹中|-src|-main|-java|-cpp|-native-lib.cpp|-library-1|-include|-lib11.h|-lib12.h|-...|-library-2|-include|-lib21.h|-lib22.h|-...在当前版本中,我将每个文件添加到'CMakeLists.txt'...add_library(#Setsthenameo

PHP 警告 : PHP Startup: Invalid library (maybe not a PHP library)

过去我确实创建了一个共享库,现在我想在php扩展中使用它。有可能这样做吗?正如我在config.m4文件中看到的那样,PHP_NEW_EXTENSION()要求.cc。问题是我不想公开我的代码。我只想使用我在ubuntu下用c编写的header和共享库。对于php扩展,我确实创建了一个:config.m4、php_c.h和php_c.cc。请帮忙!感谢感谢我确实把这个放在了配置文件中:libs=mylib.so;PHP_ADD_LIBRARY_WITH_PATH(libs,$EXTERNAL_LIB_DIR,??whattoaddhere);我得到以下信息:PHPWarning:PHP

c++ - QObject : Missing vtable link error

我知道这个问题已经被问过很多次了,但我在这里和谷歌中都找不到解决方案。这是我的头文件#ifndefMAINCONTROLLER_H#defineMAINCONTROLLER_H#include#include#include#include#include"PhTools/PhString.h"#include"PhStrip/PhStripDoc.h"classMainController:publicQObject{Q_OBJECTpublic:explicitMainController(QObject*parent=0);voidloadSettings();PhStringg

c++ - 如何使用 CMake 组织我的文件?

关于在解决方案中组织我的代码,我在使用CMake时遇到了一些问题。我习惯于通过为每个命名空间创建一个目录来组织我的命名空间。例如,如果我创建这样的东西:namespacetest{namespaceblabla{...}}我会创建一个目录test并在其中创建一个目录blabla,但是CMake不会让它们出现在我的VisualStudio或Xcode项目中。有什么技巧可以做到吗? 最佳答案 尝试使用source_group命令。在调用add_executable后,添加source_group语句以根据需要构建项目,例如:source

c++ - 在 CMake 中设置路径(C++、ImageMagick)

我正在尝试向使用CMake开发的更大的C++项目添加一些内容。在我要添加的部分中,我想使用Magick++。如果我只是编译我的小示例程序#includeintmain(){Magick::Imageimage;return0;}与g++-oexampleexample.cxx它失败了,因为它没有找到“Magick++.h”。如果我正在使用g++-I/usr/include/ImageMagick-oexampleexample.cxx我收到“undefinedreference”错误。如果我按照http://www.imagemagick.org/script/magick++.php