我在VS2022中遇到了链接器问题。基本上我有一个类,一些函数在一个“原始”文件中,一些函数在一个名称空间中。有一个小的描述(非详尽)
Embree(静态库)
- API.h
- Embree.h(带有getIntersection_RayHit声明)
- API.cpp
- Embree.cpp(带有getIntersection_RayHit定义)
LibEmbree(静态库)
- LibEmbree.h
- LibEmbree.cpp
TestLibEmbree(可执行)
- TestLibEmbree.cpp(需要两个库)
在构建项目时,我有以下错误(实际上有很多错误,针对一些不同的函数):
1>TestLibEmbree.obj : error LNK2019: symbole externe non résolu "struct RayHit __cdecl getIntersection_RayHit(struct RTCSceneTy * const,float const *,float const *)" (?getIntersection_RayHit@@YA?AURayHit@@QEAURTCSceneTy@@PEBM1@Z) référencé dans la fonction "void __cdecl testPhil3(void)" (?testPhil3@@YAXXZ)
字符串
然而,intellisense是自动完成这些功能,我没有问题(没有下划线或红色)时编码。
我在这个平台上看到了很多类似的问题,但我尝试的修复方法都没有真正修复这个问题。这可能是一个重复的问题,但是我发现的其他问题实际上都不相似(不是相同的配置或MSVS版本)。我相信我有正确的#include用于“TestLibEmbree”文件(包含testPhil3),例如:
include“../Embree/Embree.h”
大家有没有办法解决这个问题?
非常感谢你的帮助。
1条答案
按热度按时间qij5mzcb1#
我找到了解决问题的方法。我真的不知道为什么我的一些库不需要它。
进入项目属性->链接器->输入->附加依赖项,并将完整路径添加到.lib(通常在x64/Release或/debug文件夹中)。
然后,神奇地,它工作了。