草庐IT

CMAKE_CXX_COMPILER

全部标签

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

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

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++ - C/C++ 不确定值 : Compiler optimization gives different output (example)

C/C++编译器(clang、gcc等)似乎产生了与优化级别相关的不同输出。您也可以查看本文中包含的在线链接。http://cpp.sh/5vrmv(将输出从无更改为-O3以查看差异)。基于下面的一段代码,有人可以解释我的几个问题吗:#include#includeintmain(void){int*p=(int*)malloc(sizeof(int));free(p);int*q=(int*)malloc(sizeof(int));if(p==q){*p=10;*q=14;printf("%d",*p);}return0;}是否确定执行将始终进入if语句?我们如何知道两个指针p和q的

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

c++ - 如何修复 CMake 中缺少的库错误?

我正在设置一个新服务器,CMake3.14.0-rc1向我发送一条错误消息。我在此处尝试了一些解决方案,但没有找到正确的解决方案。"CMakeErroratC:/ProgramFiles/CMake/share/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake:137(message):CouldNOTfindOpenSSL(missing:OPENSSL_LIBRARIES)CallStack(mostrecentcallfirst):C:/ProgramFiles/CMake/share/cmake-3.14/Module

c++ - 是否有任何软件可以在文件更改时重新编译基于 CMake 的软件项目?

我正在开发一个使用CMake的C++软件项目作为它的构建系统。该软件基于MacOS/X、Linux和Windows。为了改进我通常的破解/编译/测试周期,我想知道是否有一些类似守护进程的软件可以识别CMake项目考虑的所有源文件。每当修改任何源文件时,守护程序都会注意到这一点并重建受影响的目标。我的想法是,我的周期中的“编译”步骤会变得更快,因为它可以立即返回说“因为你的友好邻居构建守护进程已经重建了所有文件,所以没什么可做的。”。有人知道现有的软件可以这样做吗?如果没有-是否有可能以某种方式导出CMake考虑的源文件列表,以便我可以自己编写一个小守护程序来监视这些文件并重新运行mak

c++ - 使用 log4cxx 进行日志记录和过滤

我正在开发需要日志记录和过滤功能的应用程序。我正在使用C++。我开始了解log4cxx支持日志记录。我在过滤时遇到困难。我有五个字段MACID日期和时间命令类型状态短信我需要将这5个字段存储在日志文件中,并根据以下过滤选项对其进行过滤。日志记录和过滤将在运行时自行完成。一旦文件大小达到10MiB,它将从头开始重写文件。过滤选项1.MACID2.日期和时间过滤可以通过过滤其中一个或两个来完成。结果应返回日志文件中的所有字段。是否可以使用log4CXX在日志文件中存储多个字段?如何根据上述条件过滤信息?我是否需要编写自己的过滤器类并继承现有的过滤器类?我是否需要编写自定义记录器类来在日志文

CMake Warning (dev) at cmake/OpenCVDetectPython.cmake:140 (find_package): Policy CMP0148 is not set

1、原文在opencv编译的时候CMakeWarning(dev)atcmake/OpenCVUtils.cmake:144(find_package):PolicyCMP0148isnotset:TheFindPythonInterpandFindPythonLibsmodulesareremoved.Run"cmake--help-policyCMP0148"forpolicydetails.Usethecmake_policycommandtosetthepolicyandsuppressthiswarning.`CallStack(mostrecentcallfirst):cmake/