为什么由一个源文件组成的C程序仍然需要链接阶段?

时间:2015-12-29 16:17:50

标签: c

为什么需要连接阶段?

如果我有这个程序

$sql_up="SELECT content FROM sp_uploads WHERE s_id= 'RC49557'";
$result_set=mysql_query($sql_up);

while($row_up = mysql_fetch_array($result_set))
 {
    $pp = $row_up['content'];
 } 

    echo "<td>  
 <img style=\"float:right; margin:5px; width:150px; height:150px; padding:10px; \" 
 src=\"  data:image/jpg;charset=utf8;base64,<?php echo $pp ?>   \"  /> </td>"; 

我想它需要为Math.h库执行链接器阶段?

2 个答案:

答案 0 :(得分:3)

即使您不使用任何函数,程序仍需要与标准C运行时库链接。这提供了调用main()的包装器代码,并在exit()函数返回时调用main()

答案 1 :(得分:0)

您的程序使用两个您自己未定义的函数:printfpow,因此要生成可执行文件,必须指向这些函数的代码。但即使您不使用任何外部函数(相当罕见且通常不常用),也需要在进入定义的代码之前设置运行时(代码通常需要一些不同的技术内容才能正常运行)。