0

一个多星期以来,我一直被这个未解决的外部符号错误所困扰。比如说,使用 TBB 库(以及将在另一篇文章中提到的 PointGrey 库),我无法链接到库(我不确定 dll 或库!),它会带来这种链接错误。

这是英特尔关于 TBB 库的配置指南

我正在使用VS2008,win7。本指南意味着我只需要运行脚本文件,然后我创建的每个项目都会自动正确配置(根据(1))。我做对了吗?

到目前为止,英特尔的原始示​​例项目无需我的任何配置即可正常运行,我只需单击运行。但是对于我从相同的示例代码创建的项目,它们有链接错误

PS:脚本为:tbbvars.bat <\arch>\ <\vs>\

4

1 回答 1

0

一些库作为 lib 文件链接,有时需要告知项目这些依赖项。您显示的帮助告诉您进入您的项目 -> 属性 -> 链接器 -> 输入 -> 附加依赖项,并添加 tbb_debug.lib 或 tbb.lib (如果您在调试模式下构建,则使用 _debug 版本,另一个在发布)- 他们可能还有其他两个用于 x64 构建的版本,因此您应该为每个构建版本执行此操作。
然后转到项目 -> 属性 -> 链接器 -> 输入 -> 常规 -> 附加库目录并添加他们建议的库目录。(同样,32/64 位的单独目录)。
当然,还有 VC/c++ 属性 -> 常规 -> 包含目录,您将在其中添加 $(TBBROOT)\include。
检查您从英特尔获得的示例项目的项目属性。
如果您运行他们的脚本,如果任何 dll 包含在可执行文件中,它们将被链接器(和/或在执行期间)找到。更重要的是,他们创建了 Env Var TBBROOT,看起来像 - 您应该在属性中添加的内容引用了它。如果您没有该变量,则必须添加绝对路径。
至于您评论中的选项,是的,您可以告诉 VS 在其他地方寻找库,而不是添加额外的 Env Var(或更多路径到 PATH)。唯一需要考虑的是执行是否需要某些 dll - 在这种情况下,您可能希望在构建后将它们复制到与 exe 相同的文件夹中,并在包含中使用绝对路径。它也有点不便携......

于 2012-05-03T17:11:23.197 回答