gcc命令用于生成C語言的庫
g++用于生成c++的庫
使用g++ --help查看幫助
g++ class/First.cpp -static -g -o First
編譯 First.cpp 生產(chǎn)一個 名字為First.exe的文件
生成.o文件
g++ -O0 -g3 -Wall -c -fmessage-length=0 -oFirst.o First.cpp
gcc -c xxx.c -o xxx.o //編譯成OBJ
生成dll
gcc -shared xxx.c -o xxx.dll //編譯成DLL, 注意, Cygwin-GCC默認導出所有的Function.
ar r xxx.lib xxx1.o xxx2.o //打包多個obj成一個Lib (非連接)
gcc xxx.c ./L aaa.dll -o xxx.exe //引用外部DLL生成EXE
gcc xxx.c yyy.c -o zzz.exe //連接多個C文件, 生成EXE.
gcc -I"/bin/include" -c xxx.c -o xxx.o //引用/bin/include目錄下頭文件,生成OBJ
gcc -L"dll.a" xxx.c -o xxx.exe //連接dll.a, 生成EXE
額外的,也可以寫自己的導出Lib文件, 以方便其余程序引用DLL (如Cobol2002編譯器就不支持直接引用DLL, 這個時候可以寫一個Def, 并導出Lib文件, 便于Cobol2002使用)
具體方法如下:
1. 編譯生成DLL :
如: gcc -shared MyTest.c -o MyTest.dll, 生成MyTest.dll.
2. 寫一個DEF文件 (這里是MyTest.def), 簡單的格式大致如下:
LIBRARY MyTest //這里的MyTest對應于MyTest.dllEXPORTSAllocMemory @1 //導出的第一個function : 對應于MyTest.dll里面的AllocMemory(...), 注意, 參數(shù)可不用寫ReadMemory @2 //導出的第二個function : 對應于MyTest.dll里面的ReadMemory-Function.
//注意: function可以不用全部導出, 可以只選擇你需要的Function.
3. 用LIB工具(VC6有提供)生成LIB文件 (這里是MyTest.lib) :
lib /def:MyTest.def //默認生成的名稱為MyTest.lib.
4. 到此生成完畢, 連接的時候只需要引用MyTest.lib即可, 但要注意XXX.exe 和MyTest.dll要放在同一目錄下.
可以用 gcc --help 查看具體的命令 etc...
新聞熱點
疑難解答