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便可调试自己写的程序。
