草庐IT

cmake_link_libraries

全部标签

c++ - OS X : Any way to DELAY loading of a DEPENDENT library (. 动态库)?

C++依赖库.dylib驻留在位于应用程序包的内容/框架中的bundle中。我想延迟加载依赖库,直到我完成一些特定的初始化。除了创建运行时加载库之外,还有其他方法吗?使用弱链接选项会阻止.dylib在首次引用之前加载吗? 最佳答案 你的意思是延迟链接:ld-otesttest.o-lazy_library/usr/lib/libz.dylibld-otesttest.o-lazy-lz两者都在Zlib压缩库中的例程首次运行时加载。问题是在初始化完成之前不要运行自定义库中的例程。弱链接意味着“如果库丢失,将其所有符号设置为NULL,不

c++ - 从对象库构建的 CMake 链接共享库

我无法运行我的cmake项目。它应该构建一个库(核心),然后将这个库添加到一个新的共享库中。问题是生成的库似乎没有正确链接到可执行文件。fatalerror:JNF_NEAT/body.h:Nosuchfileordirectory我有一个结构如下的CMake项目:root->CMakeLists.txt->Core/->CMakeLists.txt->Sources/->Examples/->CMakeLists.txt->Example1/->CMakeLists.txt->Sources/根/CMakeLists.txtcmake_minimum_required(VERSION

c++ - cmake add_custom_command 失败,目标被删除

我正在使用CMake构建测试可执行文件。在构建过程中,我想运行可执行文件,它返回测试是否通过。如果没有,我希望构建失败。但是,当我使用add_custom_command(...POST_BUILD...)并使用Makefile生成器时,测试可执行文件将被删除(在这个问题中解释:WhydoesGNUmakedeleteafile).有没有办法让CMake将可执行文件视为.PRECIOUS,或者以其他方式更改CMakeLists.txt,以便在测试失败时不会删除可执行文件?作为引用,我的CMakeList.txt如下所示(根据实际情况进行了简化):add_executable(UnitT

c++ - 为什么 Eigen Matrix Library 的具有整数数据的固定大小类型不是 PoD?

给定一个固定大小的Eigen类型,比如说Eigen::Vector3d,为什么这个类型不是PoD?底层数据是一个包含3个double的数组,不需要非平凡的构造函数或析构函数。 最佳答案 在模板方面,很多位(取决于版本)在构造函数中进行,尽管是在编译时。虽然所有这些都在编译时进行评估并因此进行了优化,但仍然存在一个空的构造函数。如果您向POD类型添加一个空的构造函数,那么在使用std::copy时它也不会被memcpy。试试这个:#include#include#include#includestructnotpod{notpod()

c++ - 在 Visual Studio 2017 中使用 Qt 库的 CMake 项目 : can't find Qt dll when running the exe

我正在尝试将Qt库用于VisualStudio的CMake项目。我能够使用CMake找到所有Qt5组件(例如Qt5Sql和Qt5Core)。当我为测试做源文件时,我也可以访问Qt对象。然而,在我完成构建并尝试运行生成的可执行文件后,它会提示“您的计算机中缺少Qt5Sql.dll”。然后我将dll复制到可执行文件所在的构建文件夹,但这并没有解决问题。然而,虽然我认为Qt5Core也用于测试,但它并没有提示Qt5Core也没有说它丢失了。以下是我的问题:为什么Qt组件可用于源文件,但不可用于可执行文件?我应该在哪里保存dll文件以便exe文件可以找到它们?我已经阅读了很多关于静态库、动态库

c++ - 加速 RcppArmadillo : How to link to OpenBlas in an R package

我正在开发一个使用RcppArmadillo的R包。我正在尝试利用OpenBLAS中更快的矩阵乘法。在documentation在C++armadillo库中,它说如果我们的机器上有OpenBLAS,那么Armadillo将使用OpenBLAS而不是BLAS。然而,当我编译我的R包时,我得到如下信息:g++-m64-std=c++11-shared-L/usr/lib64/R/lib-Wl,-z,relro-specs=/usr/lib/rpm/redhat/redhat-hardened-ld-oPackageTest.soclass1.oclass2.oclass3.oclass4

c++ - 子目录之间的CMake自定义目标名称冲突

我正在编写一个游戏引擎,我有一个名为thirdparty的目录我的引擎使用的所有外部库都放在哪里:thirdparty/.../zlib/freetype2/SDL2/...因此,引擎目录结构如下所示:engine/actorsengine/memory_allocatorengine/rendererengine/...engine/thirdpartyengine/thirdparty/CMakeLists.txtengine/CMakeLists.txtengine/CMakeLists.txt:cmake_minimum_required(VERSION3.2)project(

c++ - 将 Visual Studio 调试器工作目录设置为 CMake 中的可执行输出目录

VisualStudio调试器的默认工作目录是$(ProjectDir).我真正想要的是将其设置为$(TargetDir)(我正在运行的.exe所在的位置)。Thisanswer提供了正确的语法,因此我尝试了以下操作:if(CMAKE_CXX_COMPILER_IDMATCHES"MSVC")set_target_properties(${PROJECT_NAME}PROPERTIESVS_DEBUGGER_WORKING_DIRECTORY${PROJECT_BUILD_DIR}/Debug)endif()但是这硬编码了Debug,我不喜欢。我试过了$在最后,但这在VisualStu

c++ - 使用 Cmake-gui 和 vcpkg

这个问题在这里已经有了答案:Settingacross-compilerfileusingtheCMakeGUI(2个答案)关闭上个月。我正在为我的项目测试vcpkg,我遇到了cmake-gui的问题我已经安装了vcpkg,在vcpkg的帮助下安装了Boost库。当我通过命令行编译时,一切正常。我用命令cmake..-DCMAKE_TOOLCHAIN_FILE=D:/repos/vcpkg/scripts/buildsystems/vcpkg.cmake-G"VisualStudio15Win64"但问题是当我想使用cmake-gui生成构建文件时。它报告找不到Boost。我尝试添加s

100天精通鸿蒙从入门到跳槽——第20天:ArkTS装饰器@Link双向数据绑定

博主猫头虎的技术世界🌟欢迎来到猫头虎的博客—探索技术的无限可能!专栏链接:🔗精选专栏:《面试题大全》—面试准备的宝典!《IDEA开发秘籍》—提升你的IDEA技能!《100天精通Golang》—Go语言学习之旅!《100天精通鸿蒙》—从Web/安卓到鸿蒙大师!100天精通鸿蒙OS(基础篇)