Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.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
Linker gcc中连接到库的各种链接器是什么_Linker - Fatal编程技术网

Linker gcc中连接到库的各种链接器是什么

Linker gcc中连接到库的各种链接器是什么,linker,Linker,我曾经尝试执行一个程序,但它显示了某些错误,如linux中的“未定义对sqrt的引用”。然后我开始浏览很多博客和类似的东西,我知道在执行之前有两个过程,那就是编译和链接。如果有人能帮助我了解连接到相应库的各种链接器标志,那将非常有帮助 我知道在执行之前有两个过程,那就是编译和链接 编译和链接是构建时操作。它们的结果是可以立即执行的二进制文件。也就是说,安装在您机器上的二进制文件已经完成了这些步骤 加载程序二进制文件时,可能需要动态加载并链接其他库。这是由所谓的动态链接器执行的,它是操作系统的一部

我曾经尝试执行一个程序,但它显示了某些错误,如linux中的
“未定义对sqrt的引用”
。然后我开始浏览很多博客和类似的东西,我知道在执行之前有两个过程,那就是编译和链接。如果有人能帮助我了解连接到相应库的各种链接器标志,那将非常有帮助

我知道在执行之前有两个过程,那就是编译和链接

编译和链接是构建时操作。它们的结果是可以立即执行的二进制文件。也就是说,安装在您机器上的二进制文件已经完成了这些步骤

加载程序二进制文件时,可能需要动态加载并链接其他库。这是由所谓的动态链接器执行的,它是操作系统的一部分(尽管有些程序包含自己的动态链接器)

我曾经试图执行一个程序,但它显示了某些错误,比如“未定义对sqrt的引用”

这样的消息通常出现在程序编译和链接时,而不是执行时。在动态链接程序的情况下,与链接问题相关的最有可能的错误消息是关于无法定位和/或加载的所需库的消息


无论如何,
sqrt
函数是标准C数学库
libm
的一部分。要将库与GCC链接,可以使用
-l
标志,该标志采用库名称,省略了前面的
lib…
部分。因此,在您的情况下,
-lm

@sachinandakumar:嗯,对于您需要的每个库,您必须添加一个
-l..
,即
-l
标志可以多次给出。但是有很多很多的标志,不仅仅是
-l
。编译器本身也是如此。我建议你读一下精美的手册:而且