static-linking相关内容

如何调试静态依赖加载问题?

如何调试 Visual C++ 2010 SP1 应用程序无法完全加载其依赖项并过早退出而不显示其 UI 的场景? 我对 Fusion Logs、dependency walker 和远程调试器的良好指南感兴趣,如果您认为它们相关的话.是否可以使用 WinDbg 轻松验证?Process Explorer 怎么样? 是否可以在附加了远程调试器的远程机器上启动进程? 是否可以验证是 ..
发布时间:2021-08-30 18:34:36 C/C++开发

防止 Xcode 从静态库中剥离未使用的符号

我已经构建了一个静态库,我的 iOS 二进制文件正在链接该库.静态库的代码剥离已关闭,等等,我可以看到存档中的符号(通过 nm). 因此,我将该库作为框架链接到我的应用程序中.但是,我实际上并没有直接调用该函数.因此,我可以在我的二进制文件中看到我直接调用的符号,但看不到未被调用的符号.但是,因为我实际上希望这些符号在运行时就在那里,所以我使用 -all_load 进行编译. 但是,这 ..
发布时间:2021-08-30 18:34:30 移动开发

linux 64bit下与32bit库的链接

让我解释一下.我将 网络机器人 与 aldebaran SDK.我的操作系统是 Debian Squeeze amd64.Webots(64 位)不能与 aldebaran SDK 一起使用,因为它们的库是为 32 位编译的.我没有要在 64 位中重新编译的库源.尝试在 webots 下编译默认的 nao 控制器时,出现以下错误: g++ -o naoqi_for_webots naoqi ..
发布时间:2021-08-30 18:34:27 服务器开发

Visual Studio 2012 上的静态 ZLIB (1.2.8) 链接

看在上帝的份上,我不能静态链接 ZLIB 库.我已经挣扎了几个小时,但没有成功.好吧,我已经按照这个教程 并成功编译了两者zlibstat.lib 和 zlibwapi.lib 为 32 位.将我的项目设置为使用带有库的 ZLIB 文件夹(链接器 > 常规 > 附加库目录)并将 zlibwapi.lib(仅)设置为依赖项(链接器 > 输入 > 附加依赖项)后,我让它工作,但是,这是一个动态链接(我 ..
发布时间:2021-08-30 18:34:21 其他开发

C 程序中的 .eh_frame 部分有什么用?

我有一个从 C 程序编译的静态链接的可执行文件.objdump -x a.out 表示存在 .eh_frame 部分,即使在 strip -s 之后.为什么本节在 C(非 C++)程序中有用?剥离它有什么风险(使用strip -R .eh_frame)? 解决方案 根据 remyabel 的评论和 OP 的确认,OP 问题的答案可通过另一个 SO 问题获得,链接如下: 为什么 GCC ..
发布时间:2021-08-30 18:34:18 其他开发

Clang 在静态链接期间删除死代码(gcc 相当于 -Wl、--gc-sections)

我正在链接一个静态库,我想知道应该如何处理 llvm/Clang 中死代码的剥离.我找不到任何暗示 Clang 具有 -Wl、--gc-section 或 -dead_strip 等价物的文档. 我假设在更高的优化级别会自动执行一些死代码消除,但在 gcc 中也是如此,对吧?然而,gcc 通过上述标志提供了一些明确的控制.Clang 没有提供,还是我遗漏了什么? (系统是OSX) ..
发布时间:2021-08-30 18:34:15 其他开发

在 Linux 上静态链接 libgmp 时出错

GMP 文档说静态链接可能会提供小的性能改进. 我在让它静态链接我的 Linux 系统上的 libgmp 时遇到问题.我已将问题范围缩小到一个小测试用例. gmptest.c #include int main(int argc, char** argv) {mpz_t foo;mpz_init(foo);返回0;} 生成文件: all: clean gmptest static ..
发布时间:2021-08-30 18:34:12 其他开发

与 Visual Studio 2010 的静态 libpng 链接

我正在尝试向我的应用程序添加 PNG 支持,因此我想包含 libpng.我知道它需要 zlib,因此我也下载了它.我进入了 png 文件夹/项目/vstudio,然后打开了解决方案.我编译了它,它运行得很好.我将其中的一些标题添加到我的应用程序中,并复制了 lib 文件.我的程序是一个用 C++ 编写的 dll,后来在 C# 中使用.当我在 C# 中运行它时,它抱怨找不到我的 dll(如果我删除 ..
发布时间:2021-08-30 18:34:06 C/C++开发

如何使用 pkg-config 静态链接库

我想静态链接 pkg-config 找到的 libpng. pkg-config --libs --static libpng 输出 -L/usr/local/Cellar/libpng/1.6.15/lib -lpng16 -lz 我在那个目录中有两个 libpng16.a libpng16.dylib,如果我使用这些标志,库会动态链接. 如何告诉 pkg-config 或 ..
发布时间:2021-08-30 18:33:59 其他开发

VS2010:静态链接单个库

情况: 我正在用 VS2010 构建一个库,它依赖于 LibraryA.我只使用 LibraryA 提供的众多功能之一,所以我想静态链接它. 我正在阅读的关于此的所有内容都告诉我将整个项目设置为与 MFC 静态链接,这是我不想做的事情.我的库动态链接到 Windows DLL 就好了;我只想静态链接到 LibraryA. 在选项窗口中胡闹,我似乎没有看到这样的选项.真的是全有还是 ..
发布时间:2021-08-30 18:33:56 其他开发

Xcode 9:将一个静态框架链接到另一个静态框架

本着 Xcode 9 的“革命性"功能的精神,即编译静态框架,我们试图将我们的子项目构建为静态框架,以便它们可以静态链接到主应用程序目标. 我们的一个子项目本身具有静态框架依赖项 (Firebase).当我们将子项目构建为动态框架时,一切正常,但是一旦我们将其切换为 mach-o staticlib,它突然丢失了 Firebase 库符号. 以下是 nm 的输出,分别用于将我们的子项目 ..
发布时间:2021-08-30 18:32:59 移动开发

如何调试链接器错误?静态链接ICU时出现未定义的引用错误

我已经为 ICU 49 和 50 构建了静态库,但是当与其中任何一个链接时,我仍然收到 667 个链接器错误,如下所示.我怎样才能调试这个并找出问题所在?ICU 支持列表根本没有提供任何帮助. clang++ -ccc-gcc-name g++ -Wl,-E -o velocity main.o city.o auto_lua.oobj_builder.o index.o obj.o str.o ..
发布时间:2021-08-30 18:32:22 C/C++开发

库和可执行文件的大小

我在 Windows 上使用 MSVC 创建了一个静态库 *.lib.库的大小是 70KB.然后我有一个链接这个库的应用程序.但现在最终的可执行文件 (*.exe) 的大小为 29KB,小于库.我想知道的是: 由于库是静态链接的,我认为它应该直接添加到可执行文件的大小,最终的 exe 大小应该不止于此?windows exe 格式是否也对二进制数据进行了一些压缩? Linux 系统如何 ..
发布时间:2021-08-30 18:32:05 其他开发

Qt 静态构建 - 不可能的大小

我对 Qt 编程很陌生,我很长时间都试图了解链接库的工作原理.我需要分发一个小程序 - 1000 行左右 - 我开发给几个人. 我静态构建 Qt 因为我需要静态构建,现在我的程序大小急剧增加. 我只使用 Qpushbuttons、Qlinedits、Qlabels 和其他一些东西,我最终得到了一个超过 160Mb 的编译程序,而只有几 MB 是合理的. 我假设它包含不需要的库和类(仅解释 ..
发布时间:2021-07-23 20:21:11 C/C++开发

如何编译具有本机依赖项的 Rust 项目的静态 musl 二进制文件?

我有一个依赖于 Hyper 和 Diesel 的项目,因此,依赖于本机库 OpenSSL 和 libpq.该项目基于夜间 Rust 构建,因为它使用编译器插件. 我目前的尝试是在 Docker 容器上构建.我有 MUSL libc 和库 make'd 并安装了前缀 /usr/local/musl.我使用以下命令运行 cargo :(不确定某些选项是否多余,我不太熟悉编译器链,甚至不确定它们是 ..
发布时间:2021-07-13 21:11:19 其他开发