Linux下编译《UNIX环境高级编程》的第一个程序时出错的处理方法
 2016.02.26    |      Linux问题集合    |     AilsonJack    |     暂无评论    |     2034 views
By: Ailson Jack
Date: 2016-02-26
个人博客: http://www.only2fire.com/
<p style="text-indent: 2em;">最近在学习Linux的应用程序开发,选的书籍当然是经典的《<strong><span style="color: rgb(0, 112, 192);">UNIX环境高级编程</span></strong>》,不过在写好第一个代码编译时却遇到了一些问题,比如报错:apue.h:没有那个文件或目录、undefined reference to &#39;err_quit&#39;、undefined reference to &#39;err_sys&#39;,这里就给大家讲讲如何去解决它,不用谢我哦<img src="/UEditor/dialogs/emotion/images/face/i_f07.gif"/>。</p><p style="text-indent: 0em;">&nbsp;&nbsp;这里是我提供给大家的源代码文件以及所需的一些文件,请大家提前下载,链接:<a class="btn btn-success" href="https://pan.baidu.com/s/1hrc70iw" target="_blank">点此下载</a> ,密码:<span style="color: rgb(255, 0, 0);">5nhq</span>。</p><p style="text-align:center"><img src="/uploads/AilsonJack/2018.08.24/1535073970802963.png" onclick="preview_image(&#39;/uploads/AilsonJack/2018.08.24/1535073970802963.png&#39;)"/></p><p style="text-indent: 2em;">使用<span style="color: rgb(255, 0, 0);">gcc 1-1.c</span>编译该代码时,报出&quot;<span style="color: rgb(255, 0, 0);">致命错误:apue.h:没有那个文件或目录</span>&quot;,现在将书籍提供的apue.h放在同一目录时,再次编译,发现又报另外的错误:</p><p style="text-indent: 2em;"><span style="color: rgb(255, 0, 0);">undefined reference to &#39;err_quit&#39;</span></p><p style="text-indent: 2em;"><span style="color: rgb(255, 0, 0);">undefined reference to &#39;err_sys&#39;</span><br/></p><p style="text-align:center"><img src="/uploads/AilsonJack/2018.08.24/1535073970247897.png" onclick="preview_image(&#39;/uploads/AilsonJack/2018.08.24/1535073970247897.png&#39;)"/></p><p style="text-indent: 2em;">因为err_sys和err_quit是作者自己提供的函数,这里需要单独的源代码文件支持,我已经提供给大家了,大家下载即可。</p><p style="text-indent: 2em;">下面是完整的解决办法:</p><p style="text-indent: 2em;">将我提供大家的<span style="color: rgb(255, 0, 0);">include</span>文件夹拷贝到Linux系统中,这里我放在<span style="color: rgb(255, 0, 0);">/home/AilsonJack/me/apue</span>目录中:</p><p style="text-align:center"><img src="/uploads/AilsonJack/2018.08.24/1535073970833902.png" onclick="preview_image(&#39;/uploads/AilsonJack/2018.08.24/1535073970833902.png&#39;)"/></p><p style="text-indent: 2em;">然后执行命令:<span style="color: rgb(255, 0, 0);">vim /etc/profile</span>,在profile文件的末尾添加如下内容,保存退出:</p><p style="text-indent: 2em;"><span style="color: rgb(0, 112, 192);">#gcc找到头文件的路径</span></p><p style="text-indent: 2em;"><span style="color: rgb(0, 112, 192);">C_INCLUDE_PATH=/usr/include/libxml2:/home/AilsonJack/me/apue/include</span></p><p style="text-indent: 2em;"><span style="color: rgb(0, 112, 192);">export C_INCLUDE_PATH</span></p><p style="text-indent: 2em;">接着执行命令:<span style="color: rgb(255, 0, 0);">source /etc/profile</span></p><p style="text-indent: 2em;">接下来,编译1-1.c文件:<span style="color: rgb(255, 0, 0);">gcc 1-1.c</span>,没有报错吧,执行<span style="color: rgb(255, 0, 0);">./a.out&nbsp; /home</span><br/></p><p style="text-align:center"><img src="/uploads/AilsonJack/2018.08.24/1535073971266801.png" onclick="preview_image(&#39;/uploads/AilsonJack/2018.08.24/1535073971266801.png&#39;)"/></p><p style="text-indent: 2em;">至此已经解决了编译第一个程序所出现的问题,剩下的就好好学习吧。<br/></p>
欢迎关注博主的公众号呀,精彩内容随时掌握:
热情邀请仔细浏览下博客中的广告,万一有对自己有用或感兴趣的呢。◕ᴗ◕。。
如果这篇文章对你有帮助,记得点赞和关注博主就行了^_^,当然了能够赞赏博主,那就非常感谢啦!
注: 转载请注明出处,谢谢!^_^
暂无评论,要不要来个沙发
发表评论

 
Copyright © 2015~2023  说好一起走   保留所有权利   |  百度统计  蜀ICP备15004292号