静态库或静态链接库是一组例程,外部函数和变量,它们在编译时在调用者中解析,并由编译器,链接器或绑定器复制到目标应用程序中,生成目标文件和站点 - 可执行文件。此可执行文件及其编译过程都称为程序的静态构建。
为什么静态链接的“hello world”程序这么大(超过 650 KB)?
考虑以下程序: #包括 int 主函数(无效) { printf("你好世界 ”); 返回0; } 如果我使用 GCC 构建它,优化大小并使用静态链接,并且
我有一个目标文件,其中有一堆我不关心的编译器生成的部分。当我使用链接器脚本将平面二进制文件链接在一起时,我有时可以看到这些部分放置在...
使用 sqlcipher 时如何强制 rustqlite 构建为静态链接?
我正在使用 rustqlite,并尝试将其配置为通过 Cargo 功能使用 sqlcipher。在通常情况下,rustqlite 有一个捆绑功能来包含 sqlite 源。当更改为 sqlcipher 时,...
如何通过在 Linux 上链接 libtiff 来解决此问题
我正在尝试链接 /usr/local/lib 中的 libtiff.a (静态库) 修改为列出 CMakeLists.txt 的全部内容: 设置(PROJECT_NAME DeepSkyStacker) message("正在配置项目...
如何编译(Haskell)程序,使其不需要 DLL? 我编写了一个使用 GLUT 并需要 glut32.dll 的程序。我用 ghc --make program.hs 编译了它。现在我想分发我的
在 Visual Studio 中使用现有 C++ 应用程序中的 Rust 库
我需要一些有关 Rust 库到 C++ 应用程序的静态链接的建议。 我能够正确链接非常简单的代码,而无需 Rust 依赖项,并且我还能够链接代码(e...
分发静态链接的 ELF 32 位二进制文件 - 它会在所有平台上运行吗?
我的团队已准备好发布 Linux 程序的第一个版本,并希望以最简单的方式(对于用户)来发布。 该程序不需要外部文件,无需安装,并且是静态的...
我已经确定静态链接的程序不能总是在不同的发行版之间运行。 我的问题是,分发发行版规范的静态链接程序是否安全......
我正在构建一个项目,其中包含两个 .net 可执行文件以及一个包含两个可执行文件共享的公共组件的类库。为了便于分发,我希望能够分发...
我的一般任务: 我有一个 Fortran 工具,它使用 MKL 库中的函数 dgemm、dgemv、dgesvx 和 dsyev。我需要将我的代码编译为共享对象 (.so),以使其在不同的...
我有一个已经开发了几十年的应用程序,并且为我提供了 .h 和 .a 文件。 我的程序主要是c/c++,当我尝试链接到这些.a文件时,我得到:错误LINK2019:
这个简单的测试用例: #包括 无效_开始(无效){ _退出(0); } 在 Debian 12.6 i386 上运行时崩溃。 使用 gcc -lc -nostdlib -static -Os 编译。请注意,这是在...
这个简单的测试用例: #包括 无效_开始(无效){ _退出(0); } 在 Debian 12.6 i386 上运行时崩溃。 使用 gcc -lc -nostdlib -static -Os 编译。请注意,这是在...
我正在尝试编译并静态链接 Emacs,因为在工作中我被迫在运行 CentOS 5.1 且包管理器配置损坏的生产服务器上通过 ssh 进行 JavaScript 开发...
当我这样做(动态链接)时,一切都很好: $ gcc -o beta.bin ./game.c -lSDL -lSDLmain 但是当我尝试静态链接时: $ gcc -static -o beta.bin ./game.c -lSDL -SDLmain 存在链接器问题: /usr/
我尝试使用MSYS2提供的静态Qt 6包但没有成功。 相同的代码可以很好地使用 Qt 5.15 动态、Qt 5.15 静态和 Qt 6.5 动态构建,但 Qt 6.5 st...
为什么在 Windows 上将动态库链接到静态库显然很容易,但在 Linux 上“-fPIC”却变得困难?
我正在努力调整现有的 ODBC 驱动程序,以便它可以针对 Linux。 ODBC 驱动程序通常在 Windows 上作为 DLL 分发,在 Linux 上作为共享对象 (.so) 分发。 驱动依赖Boos...
编译/配置时如何指定额外的 include 和 lib 目录? (回复:自动配置/配置)
我是一名 Windows 开发人员,只有一点使用 GNU gcc/make/autoconf 等进行编译的经验。 我正在尝试在我的新 MacBook 上编译一些应用程序,并将依赖项放在一个se...
具有混合 MT 和 MD 库的 Visual Studio C++ 解决方案
我有一个 Visual Studio C++,其中包含几个项目和库。 一种是用MD选项编译的,另一种是用MT选项编译的。 有什么办法可以进行这种设置吗
我正在使用 Visual Studio 2022、C++、x64 编写一个应用程序,并在 vcpkg 的帮助下安装了库。它们是动态链接库。 我想将我的应用程序作为静态使用,在另一台电脑上运行它...