- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 Linux 新手。我在 CMakeLists.txt 中看到以下内容;
target_link_libraries(app wiringPi
serializer
iothub_client
iothub_client_mqtt_transport
umqtt
aziotsharedutil
ssl
crypto
curl
pthread
m
ssl
crypto)
我的问题/理解是;通过这样做
ldconfig -p | grep <libraryname>
, 对于上述库有时我会找到如下所示的输出,有时什么也找不到,这是为什么?/usr/lib/arm-linux-gnueabihf
pi@raspberrypi:~ $ ldconfig -p | grep curl
libcurl.so.4 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libcurl.so.4
libcurl-gnutls.so.4 (libc6,hard-float) => /usr/lib/arm-linux-gnueabihf/libcurl-gnutls.so.4pi@raspberrypi:~ $ ldconfig -p | grep wiringPi
libwiringPiDev.so (libc6,hard-float) => /usr/local/lib/libwiringPiDev.so
libwiringPiDev.so (libc6,hard-float) => /usr/lib/libwiringPiDev.so
libwiringPi.so (libc6,hard-float) => /usr/local/lib/libwiringPi.so
libwiringPi.so (libc6,hard-float) => /usr/lib/libwiringPi.so
最佳答案
- Are we telling CMake tool to build wiringPi, serializer etc. and link with app(which is an executable created in my code)?
不完全是。该命令告诉 CMake 库 wiringPi
, serializer
, etc. 必须在该目标的链接阶段链接到目标“app”。它没有提到自己构建库,通常它们应该已经可用而不是构建。
- Where are all these libraries located?
它可以变化。编译器有一个默认的目录列表,它在其中查找库。其他 CMake 命令可以添加链接选项,将目录添加到该列表。
- When I do
ldconfig -p | grep <libraryname>
, for the above libraries sometimes I find outputs like the following and sometimes nothing, why is that?
ldconfig
报告动态 链接器已知的库。这与编译时运行的链接器不同,两者所知道的目录和库不一定相同。原因ldconfig
可能不会列出给定的库包括:
- Is target_link_libraries smart enough to look for libraries under the sub-directories too? I mean I see that some are just there under
user/lib
and some are one more level under such as/usr/lib/arm-linux-gnueabihf
这不是 CMake 的功能,而是所选工具链及其配置的功能(在 Linux 上,通常是 GNU 工具链,具有 GCC)。通常可以安全地假设工具链默认使用所有正确的标准 库目录。有时也可以成功地指示 CMake 在其他可能的地方搜索特定的库,但是 target_link_libraries
不是其中的一部分。
关于linux - 了解 target_link_libraries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52192619/
我正在尝试链接我的 CMakeLists.txt 中的 Curl 库,我知道我应该要求包添加可执行文件并链接库,但我不知道如何调用变量名称以及我应该在哪里查看对于他们,你知道我应该去哪里找吗?有没有办
我有一个 cmake 项目,我想在其中添加一个包含 matlab 引擎的类。为了编译它,我需要包含两个库 eng和 mx ,我通过添加 target_link_libraries( ${TARGE
我是 Linux 新手。我在 CMakeLists.txt 中看到以下内容; target_link_libraries(app wiringPi
我有一个小型静态库,它需要 boost 头文件,并且需要包含目录中的“include”目录。 ... add_library(alib STATIC ...) target_include_direc
是否有任何用例 target_link_libraries(my-lib x y z) add_dependencies(my-lib x) # this is not just a waste of
我想知道默认的 target_link_libraries 隐私是什么。 我在 CMake 中添加了一行: target_link_libraries(myTarget library
出于多种原因,我必须通过自定义命令手动生成静态库。 但是,似乎自定义命令仅在目标明确请求其输出文件时才执行。 如果我尝试将生成的静态库与 target_link_libraries 链接起来, CMa
案例: 我已经声明了一个函数 setup_target_for_coverage在单独的 .cmake 脚本中,添加到 CMAKE_MODULE_PATH , 它为代码覆盖率分析准备了一个目标 ( m
假设我有一个可执行的 Alpha,它必须链接到一个共享库 Beta。 Beta 本身依赖于共享库 Gamma。 Gamma 对我来说已经存在,但我必须使用 cmake 自己编译 Alpha 和 Bet
我的项目中有很多库,还有很多单独的应用程序。我的一些库有依赖库,其中一些是外部库,我想要一种使应用程序 CMakeList.txt 文件更简单的方法。我希望使用宏来简化。 下面是一个大大简化的测试用例
我想为 C 代码测试创建模拟函数,并了解到在 target_link_libraries() 中可以选择包装函数,其工作方式类似于模拟,但不明白它是如何工作的? target_link_librari
我有一个示例库和两个符号链接(symbolic link): libname.so -> libname.so.3 libname.so.3 -> libname.so.3.0 当我使用此命令时: t
我一次又一次地与链接器问题作斗争,因为必须以正确的顺序指定 TARGET_LINK_LIBRARIES 中的所有库。但是我怎样才能确定这个顺序呢? 示例: 我有以下库 libA depends on
我正在使用 CMake 3.8.2(与 JetBrains CLion 一起提供)并链接自定义项目的几个静态库。 因为我需要保留静态符号(遗留),所以我将自己的程序部分包含在 target_link_
我有一个 CMake 多重定义链接问题,可执行文件依赖于包含静态库的共享库。 我创建了一个依赖于静态库 bar 的共享库 foo。 add_library(foo SHARED foo.cpp) ta
是否可以告诉 cmake 链接到 静态库 而不是 共享? 在我的 CMakeLists.txt 顶部,我配置了以下内容: set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CM
不知何故,我正在努力找出是否可以在 CMake 中定义导入的库,指定目标属性(include_directories 和库路径),并希望一旦我将该项目添加到另一个项目中的 target_link_li
我将开始声明我在 Cmake 问题上几乎完全是哑巴。 我有以下用于 Kdevelop 4.1 项目的 CMakeLists.txt: project(uart) find_package(KDE4 R
我是 CMake 新手,对与 target_link_libraries() 相关的 PUBLIC、PRIVATE 和 INTERFACE 关键字有点困惑。文档提到它们可用于在一个命令中指定链接依赖项
所以我在使用 CMake 构建我的软件时遇到了一个非常头疼的问题。 我正在静态构建第三方库 (dlib),它需要 zlib 和 libpng(两者都是静态的,我预先构建了这些)库来支持 PNG 功能。
我是一名优秀的程序员,十分优秀!