亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我不能使用 CGO 鏈接到包文件夾中的這個 DLL?

為什么我不能使用 CGO 鏈接到包文件夾中的這個 DLL?

Go
鴻蒙傳說 2022-10-24 09:02:25
我正在嘗試使用 CGO 來使用 realsense2.dll(英特爾的 RealSense 相機庫)。我在 Windows 11 x64 上。當我的目錄布局為:rs2test去.modrealsense2.dllcontext.go(C 代碼的包裝器)devicelist.go(C 代碼的包裝器)error.go(C 代碼的包裝器)main.go在 C 代碼文件的每個包裝器中,我有以下指令:/*#cgo CFLAGS: -I../../../include/librealsense2#cgo LDFLAGS: -L${SRCDIR} -lrealsense2#include "../../../include/librealsense2/rs.h"#include "../../../include/librealsense2/h/rs_context.h"#include "../../../include/librealsense2/h/rs_pipeline.h"#include "../../../include/librealsense2/h/rs_option.h"#include "../../../include/librealsense2/h/rs_frame.h"*/但是,當我嘗試將包裝文件放入自己的包中時,如下所示:rs2testrs2/context.gors2/devicelist.gors2/error.gors2/realsense2.dll去.modmain.go并將指令更改為:#cgo CFLAGS: -I../../../../include/librealsense2#cgo LDFLAGS: -L${SRCDIR} -lrealsense2#include "../../../../include/librealsense2/rs.h"#include "../../../../include/librealsense2/h/rs_context.h"#include "../../../../include/librealsense2/h/rs_pipeline.h"#include "../../../../include/librealsense2/h/rs_option.h"#include "../../../../include/librealsense2/h/rs_frame.h"我得到退出狀態 0xc0000135 谷歌說這意味著應用程序未能正確初始化。我也試過 -L${SRCDIR}/rs2 但它說 -lrealsense2 沒有找到。
查看完整描述

1 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

不僅在構建應用程序時需要 DLL,而且在運行應用程序時(也是最重要的)也需要 DLL。

DLL 必須與可執行文件位于同一文件夾、當前工作目錄或在 PATH 中才能被找到。這就是 Windows 的工作方式。有關詳細信息,請參閱DLL 搜索順序


查看完整回答
反對 回復 2022-10-24
  • 1 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號