4月15日作业

4月15号
习题1:编写一个hello.c 程序,并用gcc编译成名字为hello.dll的可执行文件。
习题2:论述Linux C程序开发过程。

1.dll是windows下的动态链接库,对于linux则为so
下面时如何将hello.c编译为hello.dll,并如何使用的例子。
源文件:hello.h, hello.c
目标文件:libtest.so
hello.h:
#include <stdio.h>
#include <stdlib.h>
void hello(void);

hello.c:
#include "hello.h"
void hello()
{
printf("Hello/n");
}

命令:$gcc hello.c -fPIC -shared -o libhello.so
生成libtest.so

使用动态库进行编写程序。
源文件:test.c
test.c:
#include "hello.h"
int main()
{
hello();
}
编译test命令:$gcc test.c -L. -lhello -o test
生成test

运行$./test打印出Hello即成功。
如果不成功,可使用$ldd test查看,如果提示libhello.so库没有找到。
可在/etc/profile中最后一行添加LD_LIBRARY_PATH=$(pwd),命令$source /etc/profile,命令$sudo ldconfig。然后再看看是否成功。

2.Linux C程序开发过程主要可分为2块:编写代码、调试
即不断地编写代码,不断地调试代码的过程。
编写代码可以有很多中工具,建议使用vi编辑器(可下载插件)方便编程;
调试工具建议使用gdb,注意在调试时要使用参数-g选项告诉 GCC 产生能被 GNU 调试器使用的调试信息以便调试你的程序。
如上述生成可调试的test,命令$gcc -g test.c -L. -lhello -o test
使用gdb test便可调试自己写的程序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章