首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为使用第三方库的C程序设置一个成熟的构建过程(APR - Apache Portability )

如何为使用第三方库的C程序设置一个成熟的构建过程(APR - Apache Portability )
EN

Stack Overflow用户
提问于 2011-01-22 03:09:24
回答 1查看 256关注 0票数 2

我已经写了一个由许多文件组成的C程序,并使用APR (http://apr.apache.org) -它包括它的头文件,我更喜欢它的库的动态链接。

我的问题是,目前我硬编码在我的开发站点上设置的APR头的路径和我找到的静态APR库的路径。

这是我的Makefile的样子(我重命名了一些bits):

代码语言:javascript
复制
my_program: file1.c file2.c file3.c file4.c file5.c file6.c file7.c
    @rm -f $@
    $(CC) -std=c99 -pedantic -D_POSIX_C_SOURCE -I/usr/local/include/apache -L/usr/local/lib -lapr-1 $(CFLAGS) $^ -o $@

显然,APR静态库文件的名称是libapr-1.a,但我也有libapr-1.solibapr-1.so.0,甚至还有libapr-1.la,我甚至不确定它是什么。因此,实际上,我怀疑现在我是静态地链接到APR。除了我的目标是一个令人尊敬的构建系统,我想动态链接到APR。

对于我来说,有没有一种常见的做法是建立一个自动构建,不仅对我现在有效,而且足够灵活,供其他人构建我的程序?我闻到了autotools的味道,但我完全没有使用它们的经验,现在我想满足于下一个最好的东西。我有什么选择?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-22 04:30:43

默认情况下,链接器将拾取共享库(.so),如果找不到静态库(.a)。所以当你把它传递给链接器-lapr-1时,它会恰到好处地满足你的需求。

要确保您的二进制文件确实将使用共享库,请运行以下命令:

代码语言:javascript
复制
ldd your_binary

你应该会在输出列表中看到apr库。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4762780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档