Macos 转换makefile以生成静态libxxx.a而不是动态libxxx.dylib
我正在编译一个库(),但是在我的mac上发布“make”及其包含的makefile会生成一个动态库(.dylib)。我更希望有一个静态库,这样我就可以在我的应用程序中部署它。转换makefile中的标志以生成静态库是否容易/可能Macos 转换makefile以生成静态libxxx.a而不是动态libxxx.dylib,macos,makefile,compilation,static-libraries,dynamic-library,Macos,Makefile,Compilation,Static Libraries,Dynamic Library,我正在编译一个库(),但是在我的mac上发布“make”及其包含的makefile会生成一个动态库(.dylib)。我更希望有一个静态库,这样我就可以在我的应用程序中部署它。转换makefile中的标志以生成静态库是否容易/可能 “make”似乎只是编译和链接一些C/C++代码。我有个坏消息要告诉你。可能会阻止您执行所需操作。它看起来不像是在使用任何特定于动态库的编译标志来构建对象,因此您可以使用以下方式手动构建库: make && ar cru libAntTweakBar.a
“make”似乎只是编译和链接一些C/C++代码。我有个坏消息要告诉你。可能会阻止您执行所需操作。它看起来不像是在使用任何特定于动态库的编译标志来构建对象,因此您可以使用以下方式手动构建库:
make && ar cru libAntTweakBar.a && ranlib libAntTweakBar.a
仅仅因为@mangledorf无法构建完全静态的二进制文件并不意味着他无法构建静态库。这就是为什么我希望人们只使用automake和libtool。这或多或少是一个解决方案,尽管链接到我创建的静态库有点棘手。以下是我针对此特定库的最终解决方案: