如何使用ld创建共享库? 我知道如何使用 GCC < /code >和 LN来创建共享库,但是当我有对象文件(从C++或C代码)作为输入,我如何交换到新版本的库时,如何使用“代码> LD 创建共享库?”p> 我如何使用LD创建共享库,当我有对象文件(从C++或C代码)作为输入< /P>
您可以运行如何使用ld创建共享库? 我知道如何使用 GCC < /code >和 LN来创建共享库,但是当我有对象文件(从C++或C代码)作为输入,我如何交换到新版本的库时,如何使用“代码> LD 创建共享库?”p> 我如何使用LD创建共享库,当我有对象文件(从C++或C代码)作为输入< /P>,c++,c,linux,shared-libraries,ld,C++,C,Linux,Shared Libraries,Ld,您可以运行gcc-v-shared…来发现gcc传递给ld的选项。然后,您可以将相同的参数直接传递给ld,结果应该是相同的 注意:这是不明智的(不要这样做):参数随gcc和ld的不同版本而变化,并且随着操作系统版本的不同而变化 为ld构造链接行是非常常见的,几年前,这些链接行是正确的,但现在已经不正确了。执行此操作时引入的bug通常是低级的、微妙的,超出了大多数程序员的理解和修复能力。大多数人通过gcc/g++使用ld他们不会直接调用它。你所说的“切换到库的新版本”是什么意思?我的意思是,我有l
gcc-v-shared…
来发现gcc
传递给ld
的选项。然后,您可以将相同的参数直接传递给ld
,结果应该是相同的
注意:这是不明智的(不要这样做):参数随gcc
和ld
的不同版本而变化,并且随着操作系统版本的不同而变化
为
ld
构造链接行是非常常见的,几年前,这些链接行是正确的,但现在已经不正确了。执行此操作时引入的bug通常是低级的、微妙的,超出了大多数程序员的理解和修复能力。大多数人通过gcc/g++
使用ld
他们不会直接调用它。你所说的“切换到库的新版本”是什么意思?我的意思是,我有liba.so.1.0.1,我做了一些修改,创建了新版本liba.so.1.0.2。如何在新版本上交换?我应该删除liba.so.1.0.1和liba.so.1之间的旧连接?