Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用ld创建共享库? 我知道如何使用 GCC < /code >和 LN来创建共享库,但是当我有对象文件(从C++或C代码)作为输入,我如何交换到新版本的库时,如何使用“代码> LD 创建共享库?”p> 我如何使用LD创建共享库,当我有对象文件(从C++或C代码)作为输入< /P>_C++_C_Linux_Shared Libraries_Ld - Fatal编程技术网

如何使用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之间的旧连接?