gpt4 book ai didi

c - GNU g++ -G 选项,用于创建在 Solaris 上可用而不在 Linux 上可用的共享库

转载 作者:太空宇宙 更新时间:2023-11-04 08:05:51 25 4
gpt4 key购买 nike

我在 SolarisLinux 上都使用 GNU g++ 4.9.2 编译器。在 Solaris 平台上,要从源文件 (a.c) 创建共享库,我使用以下命令:

g++ -G a.c -o a

a 成为共享库a.c 包含以下代码:

void libfn1()
{
}

如果我尝试不使用 -G 选项,即编译为:

g++ a.c -o a

它得到一个链接器错误:Undefined Symbol main

但是,在 Linux 上,如果我做同样的事情:它说:

g++: error: unrecognized command line option -G

如何在 Linux 上创建共享库? g++ 选项是什么?

最佳答案

g++ 文档是这样说的:

These additional options are available on System V Release 4 for compatibility with other compilers on those systems:

-G Create a shared object. It is recommended that -symbolic or -shared be used instead.

通常您也想为共享库生成与位置无关的代码,使用 -fPIcflags。

所以你想运行:

g++ -fPIC -shared a.c -o liba.so

关于c - GNU g++ -G 选项,用于创建在 Solaris 上可用而不在 Linux 上可用的共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42977814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com