繁体   English   中英

Solaris 32位-使用gcc构建共享对象

[英]Solaris 32 bit - build shared object using gcc

我正在尝试使用gcc版本3.4.3(适用于Solaris 32位系统)创建共享库(.so)。 我正在搜索创建solaris共享对象所需的标志。 在某些帖子中,我看到未使用“共享”标志。 而是使用“ -G”标志。 我有一个印象,“-G”标志与“ -g”相同,但似乎“ -G”等同于“ -shared”。 我对么?

原因是在SLES10 x86_64系统中,构建.so需要“共享”标志。

我尝试了以下内容:

LIB=-L/lib -L/usr/local/lib -L/usr/lib
gcc -m32 -G -fPIC -o myapi.so.1 myapi.o $(LIB)

我是否需要将以上内容更改为:-

gcc -m32 -shared -fPIC -o myapi.so.1 myapi.o $(LIB)

UPDATE1从@ user562374有益的建议使用-shared标志。

如果使用-shared构建的共享库使用不同的编译器部署在solaris机器上,并且被“静态”链接,会引起任何问题吗? 当我说“静态”链接.so时,我的意思是共享对象在make文件中链接,而不是使用“ dlsym”。

   -G num
       Put global and static objects less than or equal to num
       bytes into the small data or bss sections instead of the
       ...

如果是gcc, -shared ,因为-G还有其他用途。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM