回覆列表
  • 1 # 使用者774056550451

      mingw編譯出來的靜態庫字尾名為.a,編譯出來的動態庫的匯入庫字尾名為.dll.a,而在windows下字尾名為.lib的庫可能是靜態庫也可能是動態庫的匯入庫。  mingw編譯出來的動態庫的匯入庫可以直接在vc中直接使用,例如  #pragma comment(lib, "libx264.dll.a")  這樣你就不需要生成一個.lib字尾的動態庫的匯入庫了,網上也有如何從.dll生成.lib的方法。  如果連結了動態庫的匯入庫libpthread.dll.a,你釋出的應用程式就要帶上pthread的dll。  使用靜態庫的好處是釋出的應用程式元件模組裡不需要帶上相關的dll,如果要使用mingw編譯出來的靜態庫,可以如下:  #pragma comment(lib, "libx264.a")  但是僅僅連結這麼一個靜態庫是不夠的,你還需要連結  libgcc.a  libmingwex.a  你可能還需要連結libmsvcrt.a  否則會報一堆錯誤:error LNK2001: 無法解析的外部符號  上面的這些庫在C:\MinGW\lib目錄或子目錄下面可以找到。  連結這些庫的原因是mingw使用的gcc編譯器和vc編譯器之間存在差異

  • 中秋節和大豐收的關聯?
  • 收藏到好物件是運氣?還是能力?