草庐IT

CMAKE_CURRENT_LIST_DIR

全部标签

c++ - CMake "clang++ is not able compile a simple test program"(软呢帽 20)

所以我尝试安装clang+cmake来编译一个简单的C++程序,但出现以下错误:--TheCcompileridentificationisGNU4.8.3--TheCXXcompileridentificationisClang3.5.0--CheckforworkingCcompiler:/usr/bin/cc--CheckforworkingCcompiler:/usr/bin/cc--works--DetectingCcompilerABIinfo--DetectingCcompilerABIinfo-done--CheckforworkingCXXcompiler:/usr/

c++ - cmake:我必须按什么顺序指定 TARGET_LINK_LIBRARIES

我一次又一次地与链接器问题作斗争,因为必须以正确的顺序指定TARGET_LINK_LIBRARIES中的所有库。但是我怎样才能确定这个顺序呢?示例:我有以下库libAdependsonboostlibBdependsonpostgresqlandlibA(andthereforeonboost)myTargetuseslibA,libBandboostdirectly(andthroughlibBdependsonpostgresql)由于所有必需的库仅在创建可执行文件时才被链接,因此我必须在链接myTarget(最终可执行文件)时指定所有库:TARGET_LINK_LIBRARIES

c++ - 在 C++ 中,是否允许删除 list<Pointer>::unique 中的对象

我们有遗留代码,它返回巨大的原始指针列表到堆分配的对象(我们不能使用智能指针),我们将从列表中删除重复项,并将它们从堆中删除。现在,正如专家建议的那样,我想尝试std::list::unique(或forward_list::unique)而不是算法std::unique。我读过http://en.cppreference.com/w/cpp/container/list/unique在'unique'谓词中我们不应该改变对象,那么根据标准术语删除list::unique中的“将要被删除的”对象是否安全?如果是这样,list::unique中的哪个对象应该被视为重复项?在gnu实现中,

c++ - "initializer_list"找不到文件

尝试为Node安装phash-image但出现此错误:>phash-image@3.1.0install/Users/jong/Workspace/mgmtio/phash-image>node-gyprebuildCXX(target)Release/obj.target/pHash/phash.oInfileincludedfrom../phash.cpp:4:Infileincludedfrom/usr/local/Cellar/phash/0.9.6_1/include/pHash.h:50:/usr/local/include/CImg.h:160:10:fatalerror

c++ - cmake opencv : Parse error in command line argument: -D 错误

我尝试安装opencv已经有一段时间了,但每次我在配置cmake时都会遇到一些问题。这是我正在尝试使用的cmake:cmake-DCMAKE_BUILD_TYPE=RELEASE-DBUILD_PYTHON_SUPPORT=ON-DWITH_XINE=ON-DWITH_OPENGL=ON-DINSTALL_C_EXAMPLES=ON-DINSTALL_PYTHON_EXAMPLES=ON-DWITH_TBB=ON-DBUILD_EXAMPLES=ON-DBUILD_NEW_PYTHON_SUPPORT=ON-DWITH_V4L=ON-DCMAKE_INSTALL_PREFIX=/hom

c++ - 安装前后使用 CMake 配置文件路径一致

我的层次结构中有不同的库和可执行文件作为子项目。他们中的大多数是守护进程。所以我有它们相应的cfg文件,这些应用程序在启动期间读取这些文件。我有两个问题。让我们有一个简单的场景:单个项目没有层次结构。我必须在有/没有install的情况下运行应用程序。因此,如果我放置一个安装指令以将cfg保存在/etc中,我可以获得一个不变的cfg路径。但在某些情况下我可能不希望安装。我想在执行make后立即运行可执行文件。那么如何以使用/不使用install的方式管理cfg?接下来是我的场景,其中我有一个子项目层次结构。其中监视器需要a.cfg和b.cfg。所有的配置文件都单独保存在另一个子项目中。

c++ - 我如何定义 map::iterator 列表和 list::iterator 映射

我需要一个Map::iterator列表和List::iterator映射。我该怎么做:typedefstd::listList;typedefstd::mapMap;也许我可以使用迭代器的前向声明之类的东西? 最佳答案 像这样的东西应该可以帮助你:#include#include#include#include#includestructdecl_t{typedefstd::mapmap_t;typedefstd::list>list_t;list_t::iteratorit;};intmain(intargc,constchar

c++ - 将 initializer_list 转换为可变参数模板

我使用名为fmt(http://fmtlib.net/latest/)的格式化库。一种可能的用途是:fmt::format("Hello,{name}!Theansweris{number}.Goodbye,{name}.",fmt::arg("name","World"),fmt::arg("number",42));我想将此调用包装在一个函数中,我称之为:myFunction(myString,{"name","World"},{"number",42});对于任何个参数。到目前为止,我只成功地完成了一个可调用的函数:myFunction(myString,std::make_pa

c++ - 无法在 Ubuntu 上使用 CMake 构建 C++ 程序的断点

我正在尝试在Ubuntu上使用VSCode调试C++程序。我已经通过make成功地构建了项目。我使用bin/showdat命令从终端调用它并且它有效。在VSCode中,我安装了C++调试工具,而不是创建launch.json和tasks.json。下面附上这两个文件。现在我可以按F5成功启动这个程序并且运行良好。但是main函数第一行的断点没有命中。任何人都可以给我一些建议,我该如何解决这个问题?感谢您的时间。如果需要更多信息,请告诉我。launch.json文件内容{//UseIntelliSensetolearnaboutpossibleattributes.//Hovertovi

c++ - 如何使用 CMAKE 为交叉编译配置设置特定的 CMAKE_C_OUTPUT_EXTENSION?

我正在尝试设置一个工具链文件,以便与CMake3.12.0版本进行交叉编译。我的对象文件的扩展名与Windows上的.obj和UNIX上的.o不同。因此,我将我的CMAKE_LANG_OUTPUT_EXTENSION设置为.src。不幸的是,此变量被CMakeCInformation.cmake文件中的这些行覆盖:#somecompilersusedifferentextensions(e.g.sdccuses.rel)#sosettheextensionherefirstsoitcanbeoverriddenbythecompilerspecificfileif(UNIX)set(C