在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