Go编译器为共享对象生成的名称很糟糕。例如:
go install -buildmode=shared -linkshared github.com/apache/thrift/lib/go/thrift code.google.com/p/go-uuid/uuid
生成名为libgithub.com-apache-thrift-lib-go-thrift,code.google.com-p-go-uuid-uuid.so
的共享对象(我需要将大约30个包链接在一起,这将创建一个大KB的文件名)。通过go help build
和相关文档阅读我没有看到任何指定共享对象名称的选项。我试过-o
,但不支持。有趣的是,如果你打电话给go install --ldflags "-o foo"
,那么Go编译器就会崩溃...