靜態載入庫檔案時編譯器提示找不到該檔案的一種可能

2021-05-31 22:03:19 字數 751 閱讀 1643

今天下午遇到了件挺囧的事,平時還真沒注意,出現問題後著實困惑,特寫在這裡

我們知道dll的呼叫 方式有兩種:動態和靜態

(1) 動態呼叫:typedef int(*lpaddfun)(int, int); //巨集定義函式指標型別

lpaddfun add;//函式指標

hinstance hdll=loadlibrary(「path」);

add=(lpaddfun)getprocaddress(hdll, "add");//獲得dll中的add函式指標

freelibrary(hdll);

本文主要說明靜態呼叫時出現的問題,

1.如果將生成的.dll和.lib檔案拷入到呼叫dll的工程中,用命令

2.如果不將生成的.dll和.lib檔案拷入到呼叫dll的工程中,用命令

#pragma comment(lib,"c:\\dlltest.lib")(絕對路徑)或在工程->屬性-》鏈結器-》輸入->附加依賴項中寫入"dlltest.lib","dlltest.lib"並在鏈結器-》常規->附加庫目錄中填寫"c:\",實現靜態呼叫

我在呼叫的過程中

編譯器提示link:fatal error link 1104:無法開啟檔案"iiliboacw.lib;dlltest.lib"

我出錯的原因是"iiliboacw.lib;dlltest.lib",分號的關係,大家知道 在附加目錄時多個路徑之前用分號隔開,但是在附加依賴項的時候不同檔案之間用是用換行符隔開的。

linux 交叉編譯找不到庫檔案

網上大眾的作法這裡不做介紹 在編譯一些庫的時候可能某些工具會用到宿主機的,而這些工具在呼叫的時候會找和宿主機匹配的庫,而交叉編譯的庫是不能用的,遇見這種情況基本是解決不了的,但是可以通過configure 的選項去掉這些過程,舉個例子 我在編譯 udev 的時候 用到 g ir scanner 這個...

解決靜態庫檔案匯入 找不到問題

記錄一下 在匯入libbpush.a檔案時候,對照的官方的demon都正常的操作,報錯類似於 undefined symbols for architecture armv7 x referenced from normalizedir std string in libbpush.a xx.o 這...

Hive 筆記之 載入資料時,找不到檔案路徑異常

一 異常截圖 如圖 向分割槽表中載入資料時如下圖命令 紅色部分為資料路徑 load data local inpath sogou 3 500w sogou.500w.utf8 into table sogou partition 3 partition year 2011 month 12 day...