2013-04-28 59 views
0

我有2个文件链接:“test.o”和“testlib.a”两个文件都在同一个文件夹如何使用命令ld

现在我想用连接器加入他们的行列。问题是必须将它们与“ld”命令联系起来!

那么有人能告诉我语法是怎么样的吗?

我尝试这一点,但它不工作:

ld -I -o testprog test.o testlib.a 

回答

3

就让G ++利用你所有的细节问题 - 它会调用ld了所有正确的参数:

g++ -o testprog test.o testlib.a 

如果您想查看正在传递给ld的命令,以便您可以直接调用它,则只需添加-v标志:

g++ -v -o testprog test.o testlib.a 
2

如果您的程序不需要大多数程序使用的C++运行时库部件,您将得到的结果将会工作。如果您想要使用任何C++运行时功能,您将需要提供C++启动代码和标准C++库(例如,您的代码在main开始,并且有stdincin,atexit的表和许多其他类似的东西被初始化)。

没有理由直接使用ld。像Paul R说的那样,使用g++来进行链接。它知道如何去做所有你需要的事情。只有当你不想这样做时,如果你正在构建一个操作系统(或内核模块)或其他一些不使用正常标准运行时库位的组件。