Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.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链接不';t产生相同的结果(错误/成功)_C_Linux_Gcc_Linker_Ld - Fatal编程技术网

与ld/gcc链接不';t产生相同的结果(错误/成功)

与ld/gcc链接不';t产生相同的结果(错误/成功),c,linux,gcc,linker,ld,C,Linux,Gcc,Linker,Ld,我有一个问题,编译后我不想使用ld链接,但当我这样做时,我得到一个错误,让我们看看我做了什么: make i386 gcc -g -c -I. -I/usr/include -o p_test.o.i386 pkcs11test.c ld -o p_test.i386 p_test.o.i386 -g -ldl ld: p_test.o.i386: référence au symbole non défini «fflush@@GLIBC_2.0» //lib/i386-linux-

我有一个问题,编译后我不想使用ld链接,但当我这样做时,我得到一个错误,让我们看看我做了什么:

make i386
gcc -g -c -I. -I/usr/include -o p_test.o.i386 pkcs11test.c
ld -o p_test.i386 p_test.o.i386 -g -ldl     
ld: p_test.o.i386: référence au symbole non défini «fflush@@GLIBC_2.0»
//lib/i386-linux-gnu/libc.so.6: error adding symbols: DSO missing from command line
make: *** [i386_p_test] Erreur 1
因此,对于ld,我得到了这个错误,但是当我尝试使用gcc时

make i386
gcc -g -c -I. -I/usr/include -o p_test.o.i386 pkcs11test.c
gcc -o p_test.i386 p_test.o.i386 -g -ldl
我没有得到错误和我的可执行文件

你知道我如何让ld与我的程序链接吗


谢谢

当您使用
gcc-o p_test.i386 p_test.o.i386-g-ldl启动gcc时,它实际上向
ld
命令添加了许多内部库。通过向gcc添加
-v
选项,可以查看所有参数。“内部库”之一是glibc本身(
-lc

例如,这里我们可以看到用于链接可执行文件的
collect2
程序。运行中添加了
-lgcc-lgcc_eh-lc-lgcc-lgcc_eh
库,并链接了几个CRT运行时对象:

/usr/lib/gcc-lib/i686/3.3.1/collect2
 --eh-frame-hdr -m elf_i386 -dynamic-linker
 /lib/ld-linux.so.2 /usr/lib/crt1.o /usr/lib/crti.o
 /usr/lib/gcc-lib/i686/3.3.1/crtbegin.o
 -L/usr/lib/gcc-lib/i686/3.3.1
 -L/usr/lib/gcc-lib/i686/3.3.1/../../..
  /tmp/ccQynbTm.o  # << this is input file.
 -lgcc -lgcc_eh -lc -lgcc -lgcc_eh
 /usr/lib/gcc-lib/i686/3.3.1/crtend.o
 /usr/lib/crtn.o
/usr/lib/gcc-lib/i686/3.3.1/collect2
--eh帧hdr-m elf_i386-动态链接器
/lib/ld linux.so.2/usr/lib/crt1.o/usr/lib/crti.o
/usr/lib/gcc lib/i686/3.3.1/crtbegin.o
-L/usr/lib/gcc lib/i686/3.3.1
-L/usr/lib/gcc lib/i686/3.3.1/./../。。
/tmp/ccQynbTm.o#