首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Visual Studio OpenNI 連接錯誤 LNK1104:庫路徑配置與 .obj 文件誤引用排查

     編輯:程式設計綜合問答

錯誤信息

LINK : fatal error LNK1104: cannot open file 'E:\Program Files\OpenNI2\Lib\.obj'

路徑中出現 \.obj,明顯非預期文件名。

根因分析

項目屬性 > Linker > Input > Additional Dependencies 中包含了錯誤的宏/路徑,導致展開為 OpenNI2\Lib\.obj。常見原因:

  • 宏 $(OpenNI2_LIB) 定義為目錄而非具體 .lib 文件;
  • 手動輸入路徑時誤加了 \* 或 \.obj;
  • 引用了 %(LibraryPath) 等枚舉宏,展開包含目錄對象文件。

排查修復步驟

  1. 打開 **屬性頁**:右鍵項目 > Properties > Linker > Input > Additional Dependencies;
  2. 點擊下拉箭頭 > Edit,檢查每一行;
  3. 確保**只包含具體 `.lib` 文件名**(如 OpenNI2.lib)或**帶路徑的完整文件名** (如 E:\Program Files\OpenNI2\Lib\OpenNI2.lib);
  4. **刪除任何目錄路徑、宏展開異常、.obj 文件引用**;
  5. 同步檢查 Linker > General > Additional Library Directories 包含 E:\Program Files\OpenNI2\Lib (目錄,無文件名);
  6. 重新建置。

正確配置示例

// Additional Library Directories
E:\Program Files\OpenNI2\Lib

// Additional Dependencies
OpenNI2.lib
// 若有其他依賴
// kernel32.lib
// user32.lib

避坑指南

  • 庫目錄放 Additional Library Directories,文件名放 Additional Dependencies,不要混淆;
  • 宏定義:若定義 OpenNI2_DIR=E:\Program Files\OpenNI2,則
    Additional Library Directories: $(OpenNI2_DIR)\Lib
    Additional Dependencies: OpenNI2.lib;
  • 64/32 位匹配:項目平台 (x64/Win32) 必須與 OpenNI 編譯架構一致,否則 LNK1112 機器類型衝突;
  • 運行時庫:C/C++ > Code Generation > Runtime Library (MD/MT/MDd/MTd) 需與 OpenNI 編譯選項一致。

總結

LNK1104 cannot open file '...\.obj' 表明鏈接器試圖打開目錄下的對象文件,**必為 Additional Dependencies 配置錯誤**。清理該列表,僅保留具體 .lib 文件名,目錄放入 Library Directories,即可解決。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved