在Cygwin,你應該能夠構建的東西,如生成相應的共享對象庫:
gcc -shared -o libtest.so -Wl,--out-implib,libtest.dll.a libtest.c
libtest.c
將是你.c
文件的名稱或用於構建的.c
文件列表中圖書館。
這應該會產生一個libtest.dll.a
和libtest.so
。您可以使用導入庫將您的程序鏈接到共享對象。所以,你可以編譯與應用:
gcc test.c -I./include -LLib/ -ltest
的Lib/libtest.dll.a
是一個庫(導入庫),它知道如何加載.so
文件在運行時。
要更像你這樣的Windows可以刪除.so
後綴並使用.dll
。所以,編譯你的共享對象這種方式將工作太:
gcc -shared -o libtest.dll -Wl,--out-implib,libtest.dll.a libtest.c
,然後編譯客戶端(測試)象我們上面那樣:
gcc test.c -I./include -LLib/ -ltest
因爲你-o libtest.dll
導入庫編譯上面的共享對象當您的程序執行時,現在創建的將會搜索libtest.dll
而不是libtest.so
。
請注意,在運行時Windows會搜索共享對象(或dll)的路徑。所以你將不得不將你的共享對象(或DLL)移動到你正在運行你的應用程序的目錄中;或者將你的共享對象(dll)複製到你路徑上的某個地方;或將您的./Lib/
目錄添加到您的路徑。
做'ls Lib'併發布結果 – 2014-10-06 18:13:51