gpt4 book ai didi

static - 如何强制使用静态库而不是共享?

转载 作者:行者123 更新时间:2023-12-03 23:33:11 26 4
gpt4 key购买 nike

在我的 SConscript 中,我有以下几行:

Program("xtest", Split("main.cpp"), LIBS="mylib fltk Xft Xinerama Xext X11 m")

如何让 scons 使用 mylib.a 而不是 mylib.so,同时与其他库动态链接?

编辑:希望尽可能少地使用特定于平台的黑客。

最佳答案

传递包含在 File 节点中的完整文件路径将强制进行静态链接。例如:

lib = File('/usr/lib/libfoo.a')
Program('bar', 'main.c', LIBS = [lib])

将产生以下链接器命令行
g++ -o bar main.o /usr/lib/libfoo.a

请注意“-l”标志如何不传递给此 LIBS 条目的链接器。这有效地强制静态链接。另一种方法是修改 LINKFLAGS 以获得您想要的内容,但要注意绕过库依赖项扫描器——不会检查库的状态以进行重建。

关于static - 如何强制使用静态库而不是共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2986734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com