Visual Studio MSVS链接器找不到符号

c2e8gylq  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(183)

我在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”

大家有没有办法解决这个问题?
非常感谢你的帮助。

qij5mzcb

qij5mzcb1#

我找到了解决问题的方法。我真的不知道为什么我的一些库不需要它。
进入项目属性->链接器->输入->附加依赖项,并将完整路径添加到.lib(通常在x64/Release或/debug文件夹中)。
然后,神奇地,它工作了。

相关问题