星期一, 2月 15, 2016

MSVC 使用linux C Library的方法

Microsoft Visual C++可以使用linux 有source code 的函式庫,如libjpeg等,方法如下:

  • 利用mingw 編譯liunx library,產生.a 及dll
  • 利用gcc 產生def檔, e.g., 
gcc -shared -o your_dll.dll your_dll_src.c -Wl,--output-def,your_dll.def
  • 利用MSVC的工具lib.exe ,結合dll及.def 檔轉換成.lib檔,之後就可以在vc內使用
lib /def:your_dll.def

Note: 只能轉換C library,不能轉換C++ Library,因為gcc 跟 msvc在處理C++ Library的方式不相容,所以只能轉換C 函式庫 

如何在vc內使用c lib?
例子:
extern "C" {
include "openssl.h"
}


Reference:
  • How to use libraries compiled with MingW in MSVC?
http://stackoverflow.com/questions/2529770/how-to-use-libraries-compiled-with-mingw-in-msvc

沒有留言: