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便可調試自己寫的程序。

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