我正尝试在我的项目中使用odin库(https://github.com/OpenImageDenoise/oidn/),但我无法成功地将其链接起来。当我包含该库并使用文档中的示例代码时,我的IDE没有标记任何错误。但是,在尝试使用cmake编译它时,我得到了以下错误:
Undefined symbols for architecture x86_64:
"_oidnCommitDevice", referenced from:
data_denoise(std::__1::vector<float, std::__1::allocator<float> >&) in main.cpp.o
"_oidnCommitFilter", referenced from:
data_denoise(std::__1::vector<float, std::__1::allocator<float> >&) in main.cpp.o
"_oidnExecuteFilter", referenced from:
data_denoise(std::__1::vector<float, std::__1::allocator<float> >&) in main.cpp.o
"_oidnGetDeviceError", referenced from:
data_denoise(std::__1::vector<float, std::__1::allocator<float> >&) in main.cpp.o
"_oidnNewDevice", referenced from:
data_denoise(std::__1::vector<float, std::__1::allocator<float> >&) in main.cpp.o
_main in main.cpp.o
"_oidnNewFilter", referenced from:
data_denoise(std::__1::vector<float, std::__1::allocator<float> >&) in main.cpp.o
"_oidnReleaseDevice", referenced from:
data_denoise(std::__1::vector<float, std::__1::allocator<float> >&) in main.cpp.o
_main in main.cpp.o
"_oidnReleaseFilter", referenced from:
data_denoise(std::__1::vector<float, std::__1::allocator<float> >&) in main.cpp.o
"_oidnSetSharedFilterImage", referenced from:
data_denoise(std::__1::vector<float, std::__1::allocator<float> >&) in main.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)我不确定是否需要在cmake文件中链接库,因为文档中没有任何相关内容。
发布于 2021-04-14 05:53:44
解决了!我只需要把dylib链接到cmake。
https://stackoverflow.com/questions/67066721
复制相似问题