C链接库独立构建

标签 c linux shared-libraries static-libraries cross-compiling

我想用 C 开发一个可执行文件并共享这个可执行文件,它可以在其他目标系统上运行。开发系统为Linux 64Bit,目标系统为Linux ARM系统。我开发它是因为懒惰使用共享库,但如果我共享它,肯定它不会工作,因为缺少共享对象。我试图通过从源代码构建库来从共享库更改为静态库,因为它不提供静态库,但是当我尝试构建项目时,它给出了 undefined reference 错误。这应该与缺少的头文件有关。但是,如果我在构建过程中包含头文件,则在分发它们时会出现同样的问题。

是否有可能使用库但构建一个独立的可执行文件,我不必安装或复制其他东西,但可执行文件到目标系统?

交叉编译工作正常,只是库出了问题。

最佳答案

如果您使用库中的函数,您可以选择使用动态库(并要求安装它,或自行安装)

或使用将与您的程序结合的静态库(如果您可以构建静态库)

尝试使用静态库构建的最常见问题是,您可能还需要静态链接到该库也依赖的任何其他库。

关于C链接库独立构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41266459/

相关文章:

python - C++-如何将大数组作为函数的输入

c - 带有*结构的函数原型(prototype)?

c - 如何枚举 IBM WebSphere MQ 的队列管理器的本地队列?

c - memcpy 指向 union 的空指针

c - 如果 dlopen() 失败,dlerror() 如何返回 NULL?

tomcat - 无法在 tomcat 7 上加载 native C .so 文件

c++ - 指针递增递减语法差异

linux - httpd 没有按预期读取conf/httpd.conf 中的文档根目录

linux - 使用 sed 或替代函数提取文本行中 $ 和 < 之间的值

python - 如果不重写 Python/Perl 脚本,我如何在 bash 脚本中通过管道将输出连接在一起?