相关疑难解决方法(0)

为什么gcc中'-l'选项的顺序很重要?

我正在尝试编译一个使用udis86库的程序.实际上我正在使用库的用户手册中给出的示例程序.但是在编译时,它会给出错误.我得到的错误是:

example.c:(.text+0x7): undefined reference to 'ud_init'
example.c:(.text+0x7): undefined reference to 'ud_set_input_file'
.
.
example.c:(.text+0x7): undefined reference to 'ud_insn_asm'
Run Code Online (Sandbox Code Playgroud)

我使用的命令是:

$ gcc -ludis86 example.c -o example 
Run Code Online (Sandbox Code Playgroud)

按照用户手册中的说明进行操作.

显然,链接器无法链接libudis库.但如果我改变命令:

$ gcc example.c -ludis86 -o example 
Run Code Online (Sandbox Code Playgroud)

它开始工作.那么可以请某人解释第一个命令的问题是什么?

c linker gcc ld

69
推荐指数
3
解决办法
2万
查看次数

标签 统计

c ×1

gcc ×1

ld ×1

linker ×1