c++ - 操作系统 : How to statically link a library and dynamically link the standard library?

标签 c++ macos clang static-linking

我如何指定 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/

相关文章:

c++ - 重载 << 以输出 map 的 key_type 和 mapped_type

c++ - boost async_wait 并在绑定(bind)中添加 "this"

macos - 在 Mac 上安装 openstack

clang - 如何在 Clang 中以字符串形式获取函数定义/签名?

c++ - 如何从文件中读取编译器标志

c++ - clang 不应该抑制来自/usr/local/include 中头文件的警告吗?

C++ 如何每 10 秒检查一次时间?

c++ - 模板重载(不同。参数数量)

macos - 在 OSX 上构建 pygobject 的说明

ruby-on-rails - 如何访问在 Pow(rails web 服务器)上运行的远程机器