static-libraries相关内容

如何链接到 C 中的静态库?

我使用 code::blocks 来编译我的静态库.输出结果是一个 libstatic.a 文件.现在,如何链接到我的库以使用已编译的函数? (我尝试使用 #include "libstatic.a" 但我的项目无法编译) 解决方案 cc -o yourprog yourprog.c -lstatic 或 cc -o yourprog yourprog.c libstatic.a ..
发布时间:2021-12-28 19:49:02 其他开发

ld 链接器问题:--whole-archive 选项

我见过的 --whole-archive 链接器选项的唯一真正用途是从静态库创建共享库.最近我遇到了 Makefile(s),它在与内部静态库链接时总是使用这个选项.这当然会导致可执行文件不必要地引入未引用的目标代码.我对此的反应是这完全是错误的,我在这里遗漏了什么吗? 我的第二个问题与我阅读的有关整个存档选项的内容有关,但无法完全解析.如果可执行文件也链接到共享库,而共享库又具有(部分)与 ..
发布时间:2021-12-28 19:41:20 其他开发

使用 JNI 链接静态库

Java 8 之前的 Java 版本要求本机代码位于共享库中,但我读到 Java 8 可以将静态链接库与 JNI 一起使用.我已经搜索了示例,但找不到任何示例. 如何将 JNI 库静态链接到我的 Java 应用程序中? 解决方案 Java SE 8 规范已更改为支持静态链接,并且在 JDK 中实现了静态链接.这在 System.loadLibrary.它所指的 JNI 规范的部分是 ..

CLion 和 CMake:只构建一个没有可执行文件的库?

如何在没有可执行文件的情况下仅使用 clion 构建静态库?CMakeLists.txt 是什么样的?(没有add_executable) 更新:如果我不向 Clion 添加可执行文件,我有一个错误,需要可执行文件. 这里是我的 CMakeLists.txt. 解决方案 这是一个老问题.但我会将您的问题的答案添加为对其他人的帮助.您需要将 add_executable 替换为 ..
发布时间:2021-12-26 22:14:19 其他开发

我如何告诉 cmake 我希望我的项目静态链接库?

我正在尝试使用 CMake 构建一个基于 OpenCV 的项目,该项目在 Linux 上运行.到目前为止,我的 CMakeLists.txt 文件看起来像 FIND_PACKAGE(需要 OpenCV)...TARGET_LINK_LIBRARIES(我的可执行文件 ${OpenCV_LIBS}) 但这会导致动态链接库.如何链接静态库? 解决方案 您只需在 CMake 中将 BUILD ..
发布时间:2021-12-26 22:11:56 服务器开发

CMAKE - 如何将静态库的头文件正确复制到/usr/include 中?

我开始使用 C 来使用 CMAKE,实际上我正在创建两个非常小的静态库. 我的目标是: 库被编译并链接到 *.a 文件中.[这作品] 然后我希望将 *.a 文件复制到/usr/local/lib [这也有效] 就我对库的了解(很少),它们使用 -lnameoflib 链接,这是一个编译器标志.行.我已经准备好了我的 CMakeLists.txt,它实际上将 *.a 文件复制到 /u ..
发布时间:2021-12-26 21:55:41 其他开发

使用 VS2008 SP1 使用 CMake 2.8.x 将多个静态 .lib 文件链接到一个单一的 .lib 文件

与使用cmake将目标文件链接到lib.xxxx.a文件相关,但不太一样,我使用 VS2008 SP1 使用 CMake 2.8.x 在 Windows 上构建了几个静态库.有没有办法单独通过 CMake 将所有现有静态库中的所有 .obj 文件重新链接到一个更大的整体库中,最好通过 add_library CMake 函数或其他类似的构造? 我认为答案是否定的,所以我考虑过通过通常的 ad ..
发布时间:2021-12-26 21:51:14 其他开发

CMake 和静态链接

我在一个项目中使用 CMake,并且我正在尝试静态链接一些库.我已经设置: set(BUILD_SHARED_LIBS OFF)设置(CMAKE_EXE_LINKER_FLAGS“-static-libgcc -static-libstdc++ -static")set_target_properties(icarus PROPERTIES LINK_SEARCH_END_STATIC 1) ..
发布时间:2021-12-26 21:44:06 其他开发

如何告诉 CMake 链接源目录中的静态库?

我有一个带有 Makefile 的小项目,我正在尝试将其转换为 CMake,主要是为了获得 CMake 的经验.出于本示例的目的,该项目包含一个源文件(C++,但我认为该语言不是特别相关)和一个我从别处复制的静态库文件.为了论证,假设库的源代码不可用;我只有 .a 文件和相应的标题. 我手工制作的 Makefile 包含此构建规则: main: main.o libbingitup.ag+ ..
发布时间:2021-12-26 21:29:59 其他开发

使用 CMake 将多个静态库合二为一

我有一个与 cmake 上的 描述 非常相似的问题邮件列表,我们有一个依赖于许多静态库的项目(全部从单个子模块中的源代码构建,每个子模块都有自己的 CMakeLists.txt 描述每个库的构建过程),我想将它们组合成一个静态库以供发布给消费者.我的库的依赖项可能会发生变化,我不希望这些变化给链下游的开发人员带来负担.简洁的解决方案是将所有库捆绑到一个库中. 有趣的是,在将目标设置为 myl ..
发布时间:2021-12-26 21:29:01 C/C++开发

.exp有什么用,.lib和.dll有什么区别?

在编译和链接过程中,.exp有什么用?.lib 和 .dll 有什么区别?我知道将使用 .lib,而在运行程序时将使用链接和 .dll.但 .lib 和 .dll 到底有什么区别? .lib 文件是否不包含来自 .dll 文件的函数的代码?使用两个单独的文件有什么需要? 请澄清. 解决方案 对于 DLL 的导入库,.lib 文件根本不包含任何实际代码.它基本上只包含关联 DLL ..
发布时间:2021-12-25 15:58:23 其他开发

静态库、静态链接动态库和动态链接动态库的 .lib 文件里面是什么?

静态库、静态链接动态库和动态链接动态库的.lib文件里面是什么? 为什么动态链接的动态库和静态链接中不需要 .lib 文件,.lib 文件只是一个包含所有方法的 .obj 文件.对吗? 解决方案 对于静态库,.lib 文件包含该库的所有代码和数据.然后链接器识别它需要的位并将它们放入最终的可执行文件中. 对于动态库,.lib 文件包含从库中导出的函数和数据元素的列表,以及它们来 ..
发布时间:2021-12-25 15:57:57 C/C++开发

为什么 LIB 文件具有如此两面派的性质?

我正在尝试了解 Microsoft Windows 上的此 LIB 文件业务,并且我刚刚发现了一项发现,希望能够消除迄今为止阻碍我清楚了解该问题的困惑.也就是说,LIB 文件并不是它们的文件扩展名所暗示的那种文件. :: cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib":: lib/nologo/list Ad1.Libob ..
发布时间:2021-12-25 15:48:28 其他开发

DLL 和 LIB 文件 - 是什么以及为什么?

我对 DLL 和 LIB 知之甚少,只知道它们包含程序正常运行所需的重要代码 - 库.但是为什么编译器会生成它们呢?将所有代码包含在单个可执行文件中不是更容易吗?DLL 和 LIB 之间有什么区别? 解决方案 有静态库 (LIB) 和动态库 (DLL) - 但请注意 .LIB 文件可以是静态库(包含目标文件)或导入库(包含允许链接器链接到 DLL 的符号). 使用库是因为您可能有要在 ..
发布时间:2021-12-25 15:45:11 其他开发

如何解决“无法识别的选择器发送到实例"?

在 AppDelegate 中,我分配了一个在静态库中定义的实例.这个实例有一个 NSString 属性设置一个“副本".当我访问此实例上的字符串属性时,应用程序崩溃并显示“无法识别的选择器发送到实例".Xcode 为该属性提供了一个代码提示,这意味着它在调用应用程序中是已知的.特定类被编译到静态库目标中.我错过了什么? 添加一些代码. //静态库//ClassA.h@interface ..

iPhone 静态库中的核心数据

我构建了一个大量使用 Core Data 框架的静态库.我可以在我的外部项目中成功使用该库,但前提是我在主项目中包含 .xcdatamodel 文件.这不太理想,因为该库的目的是最大限度地隐藏实现细节. 在单独的问题中,我被告知我不能将资源与图书馆捆绑在一起(现在对我来说完全有意义). 那么有没有办法以编程方式允许“发现"模型而不必将模型包含在主项目中? 解决方案 我还创建了自 ..
发布时间:2021-12-23 13:48:38 移动开发

什么是等效于 GCC ld 选项的 Microsoft Visual Studio --whole-archive

将静态库链接到可执行文件时,通常会丢弃未引用的符号.在我的例子中,一些其他未使用的对象用于将它们各自的类注册到工厂中,如果对象被丢弃,则注册失败. 在我们使用 gcc 的 Unix 下,我可以将标志 --whole-archive 传递给链接器 ld(请参阅下面 ld 文档的摘录),这使得 ld 不会丢弃任何对象.Visual C++ 有没有类似的东西? --整体存档 对于 ..
发布时间:2021-12-22 18:29:34 C/C++开发