我有一个先进的自我维护构建系统 我有兴趣改用autotools或cmake。
警告是获得功能奇偶校验的“有些进步”部分。
这是我关注的问题。
默认情况下,我们构建静态和动态的“库”,并安装它们。 在寻找要链接的库时,我们首先搜索动态,然后搜索静态。
但是我们有一个名为build_standalone的有用旋钮。
它做了两件事:
- 对于库,它只构建静态库
有点像libtool“便利库”,但它们确实安装了。
对于导入(来自库和程序),它首先搜索静态 库(对于我们构建的东西总是存在,但可能不是我们没有的东西))。
导入器无法准确指定应静态链接的库, 但我们对此感到满意。
在这方面可以通过libtool或cmake实现平价吗? 怎么样?
谢谢你, - 杰伊
答案 0 :(得分:0)
关于创建静态和共享库,这可以在configure.ac
内轻松完成:
...
LT_INIT
...
This默认情况下启用共享库,如果它们与共享库不冲突,则启用静态库。
如果两者都存在时链接到静态库和共享库,则必须向Makefile.am
添加必要的注释。例如,如果你有
lib_LTLIBRARIES = libfoo.la
libfoo_la_SOURCES = foo.c foo.h
bin_PROGRAMS = bar qux
bar_SOURCES = bar.c
qux_SOURCES = qux.c
你想要
bar
动态链接到libfoo
qux
静态链接到libfoo
然后你可以:
bar_LDADD = libfoo.la
qux_LDADD = libfoo.la
qux_LDFLAGS = -static