我正在尝试构建一个只有libgfortran
静态引用的库(最好也是libgcc
)。
但是,如果我使用链接器标志
-static -lgfortran -static-libgfortran -static-libgcc
OS X上的我得到
ld: library not found for -lcrt0.o
collect2: error: ld returned 1 exit status
如果我尝试使用
-shared -lgfortran -static-libgfortran
我得到了
Undefined symbols for architecture x86_64:
"_quadmath_snprintf", referenced from:
_write_float in libgfortran.a(write.o)
"_strtoflt128", referenced from:
__gfortrani_convert_real in libgfortran.a(read.o)
__gfortrani_convert_infnan in libgfortran.a(read.o)
如果我使用-dynamiclib -lgfortran
,一切编译都很好(但是有一个到libgfortran和libgcc的动态链接)。
OS X上似乎是gcc is not build statically。
如何构建我的库,以便最终用户不需要安装gfortran或gcc?
我正在使用gcc的macports版本,但我准备使用gfortran / gcc的另一个经销商,如果它允许我这样做的话。
答案 0 :(得分:8)
-dynamiclib -lgfortran -static-libgfortran \
/opt/local/lib/gcc47/libquadmath.a -static-libgcc
似乎可以做到这一点!
奇怪的事情是弄清楚我需要添加libquadmath.a
的完整路径,这对于gcc
/ gfortran
来说就像是一个错误。