我如何指定 clang 静态链接某个库(在我的例子中是 SDL2)并动态链接标准库?
使用 -static
不好,因为链接器也试图静态链接标准库,这在 OSX 中是被禁止的。另一方面,clang 不知道 -Wl,-Bstatic
。
最佳答案
将您的静态库放在目录中,例如 ./MyStaticLibs
并简单地使用 -L./MyStaticLibs/ -l<StaticLibraryName>
.
编译器更喜欢动态版本而不是静态版本的库
如果您的动态库 ( random.dylib
) 和静态库 ( random.a
) 在同一个目录中,那么编译器将更喜欢并链接到 .dylib
不是.a
关于c++ - 操作系统 : How to statically link a library and dynamically link the standard library?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37038472/