草庐IT

CMAKE_CXX_COMPILER

全部标签

c++ - 如何防止CMake发布/IMPLIB

我有一个CMake构建,可以将/IMPLIB发送到Windows上的链接器。这在我的例子中是个问题,因为implib的参数与其中一个输入文件的路径相同。在我看来,在使用VisualStudio构建时,CMake总是发出/IMPLIB,并且无法修改传递的参数。有没有办法控制这种行为? 最佳答案 查看CMake的源代码cmComputeLinkInformation.cxx如果设置了CMAKE_IMPORT_LIBRARY_SUFFIX,它只会添加一个有效的/implib:...选项://Checkwhetherweshouldusea

c++ - 如何在 ROS Indigo 下正确链接 opencv3(使用 CMake)?

我无法将我自己安装的opencv3与ros分开链接。我收到这个错误../devel/lib/libirTest.so:undefinedreferenceto`cv::ORB::create(int,float,int,int,int,int,int,int,int)'../devel/lib/libirTest.so:undefinedreferenceto`cv::calcOpticalFlowPyrLK(cv::_InputArrayconst&,cv::_InputArrayconst&,cv::_InputArrayconst&,cv::_InputOutputArrayco

CMake Error at /usr/local/share/cmake-3.24/Modules/FindCUDA.cmake:859 (message): Specify CUDA_TOOL

问题从错误日志中可以看到,问题出在CMake无法找到CUDA工具包的根目录。错误消息是:CMakeErrorat/usr/local/share/cmake-3.24/Modules/FindCUDA.cmake:859(message):SpecifyCUDA_TOOLKIT_ROOT_DIR这意味着CMake需要知道CUDA工具包的安装位置,以便正确配置和构建denseflow。解决方式1为了解决这个问题,你需要设置CUDA_TOOLKIT_ROOT_DIR环境变量,指向CUDA的安装目录。通常,CUDA安装在/usr/local/cuda目录,但这可能因系统而异。你可以通过以下命令设置C

c++ - 嵌套类显式特化 : different compiler behavior

以下代码compilesfinewithclang++6.0.0andg++7.3.0(compilationflagsare-std=c++14-Wall-Wextra-Werror-pedantic-errors)butfailstocompilewithvc++19.10.25017(compilationflagis/Za):templatestructA{templatestructB{};};templatetemplatestructA::B{staticvoidfoo();};voidA::B::foo(){}intmain(){}vc++编译错误信息:errorC29

c++ - CMake 和 Clang 工具链接错误(树外)

我正在尝试编译RecursiveASTVisitorexampleofClang使用CMake文件。构建项目进行得很顺利,但是,由于对LLVM和Clang库的多个undefinedreference,链接C++可执行文件失败。我正在LLVM/Clang源文件树之外构建示例。这是我的CMakeLists.txt(我正在使用FindClang.cmakeandFindLLVM.cmakefromthisproject):cmake_minimum_required(VERSION2.8.4)project(ifcount)set(CMAKE_MODULE_PATH${CMAKE_CURRE

c++ - CMake:尝试将链接库添加到未在此目录中构建的目标

我在编译我的cmake项目中的一些单元测试时遇到问题。我的想法是将这些boost单元测试添加为可执行文件,以便我可以运行它们。无论如何,我收到了这个我不明白的错误,这就是说我无法链接我的cpp单元测试,必须链接它才能测试我构建的库。我尝试链接和添加为可执行文件的两个单元测试是DownloadTickers.cpp和GetTickersForLetter.cpp。我的目录结构如下:>Algo>build(thisiswhereIdo:cmake..whichgivesmeerrors)-CMakeLists.txt(toplevelcmake)-algo.h.ini-run.cpp>Ne

c++ - 命名空间与类模板名称冲突 : different compiler behavior

不同的编译器showdifferentbehavior编译以下代码:namespaceN{namespaceFoo{templatestructFoo{};}}templateusingFoo=N::Foo::Foo;namespaceN{templatestructBar:Foo{};}intmain(){}测试的编译器及其编译标志:clang++5.0.0:-std=c++14-Wall-Wextra-Werror-pedantic-errorsg++7.2:-std=c++14-Wall-Wextra-Werror-pedantic-errorsvc++19.10.25017(V

c++ - 将 CMake 对象库与共享库相结合

我有以下CMakeLists.txt定义了一个对象库和一个依赖于对象库的共享库,如下所示:add_library(fooOBJECTfoo.cpp)add_library(barSHAREDbar.cpp$)add_executable(bazbaz.cpp)target_link_libraries(bazPUBLICbar)我在链接baz时收到以下链接器错误:/usr/bin/ld:CMakeFiles/foo.dir/foo.cpp.o:relocationR_X86_64_PC32againstsymbol`_ZSt4cout@@GLIBCXX_3.4'cannotbeused

keil 报错 *** Target ‘Target 1‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which is not available

问题:***Target‘Target1’usesARM-Compiler‘DefaultCompilerVersion5’whichisnotavailable.这个错误是由于使用的ARM编译器“DefaultCompilerVersion5”不可用导致。原因是新版的keil不在自动下载v5版本的编译器,但是老版本使用的v5,所以需要手动安装v5的编译器。下载v5.06的编译器并添加到keil,下载链接如下:链接:https://pan.baidu.com/s/1HKY34HP4zjkDPGd1ikbX4w?pwd=gych提取码:gych具体操作方法:(参考的是dxh_wds的资料)1.进

c++ - 使用 CMAKE 检查编译器中是否启用了 c++11 功能

我正在使用CMake开发一个项目。我的代码包含constexpr方法,这些方法在VisualStudio2015中允许,但在VisualStudio2013中不允许。如果指定的编译器支持该功能,我如何检查CMakeLists.txt?我在CMake文档中看到过CMAKE_CXX_KNOWN_FEATURES,但我不明白如何使用它。 最佳答案 您可以使用target_compile_features要求C++11(/14/17)特性:target_compile_features(targetPRIVATE|PUBLIC|INTERF