kay*_*ahr 4 c mingw shared-libraries libtool
我正在使用 autoconf/libtool 编写一个共享库,我想为 Linux 和 Windows 编译它(使用 mingw 交叉编译器)。对于 Linux(可能还有其他支持它的平台),我需要设置 -fPIC。所以我把它放到了 Makefile.am 的 CFLAGS 中。但是当我用 mingw 交叉编译它时,gcc 会发出警告:
warning: -fPIC ignored for target (all code is position independent)
Run Code Online (Sandbox Code Playgroud)
因此,显然 Windows 代码不需要此选项。这只是一个警告,但无论如何我都想摆脱它。我怎样才能做到这一点?也许已经有一个 libtool/autoconf 功能可以检查该选项是否受支持并且仅在需要时才设置它,所以我不必在 Makefile.am 中手动执行此操作?
您不需要-fPIC手动设置,libtool如果您告诉它您正在构建什么类型的二进制文件/库,则会添加它。
lib_LTLIBRARIES = mylibrary.la
mylibrary_la_SOURCES = mylibrary.c
Run Code Online (Sandbox Code Playgroud)
根据其他 Autoconf/Automake 选项,这可以生成mylibrary.so带 PIC(如果需要)和mylibrary.a不带 PIC 。(可能类似于Windows 上的.dll和.lib,但我不使用该平台。)
| 归档时间: |
|
| 查看次数: |
2698 次 |
| 最近记录: |