我已经被这个未解决的外部符号错误困住了一个多星期了。比方说,TBB lib(以及另一篇文章中提到的PointGrey lib),我无法链接到库(dll或lib我不确定!),它带来了这种链接错误。
我正在使用VS2008,win7。本指南意味着我只需要运行脚本文件,然后我创建的每个项目都将自动进行正确的配置(根据(1))。我做对了吗?
到目前为止,英特尔的原始示例项目在没有任何配置的情况下正常运行,我只需点击运行即可。但是,根据我使用相同示例代码创建的项目,它们具有链接错误
PS:脚本是:tbbvars.bat< \ arch> \< \ vs> \
答案 0 :(得分:0)
某些库作为lib文件链接,有时需要告知项目这些依赖项。您展示的帮助告诉您进入您的项目 - >属性 - >链接器 - >输入 - >其他依赖项,并添加tbb_debug.lib或tbb.lib(如果您在Debug模式下构建,则使用_debug版本,另一个在Release中使用) - 它们可能还有其他两个版本用于x64构建,因此您应该为每个构建版本执行此操作。
然后转到项目 - >属性 - >链接器 - >输入 - >一般 - >其他库目录并添加他们建议的库目录。 (再次,32/64位的单独目录)。
当然,还有VC / c ++属性 - >一般 - >包含目录,您将在其中添加$(TBBROOT)\ include。
检查项目属性,了解您从英特尔获得的示例项目。
如果您运行他们的脚本,如果任何dll包含在可执行文件中,它们将由链接器找到(和/或在执行期间)。更重要的是,他们创建了Env Var TBBROOT,看起来像是 - 你应该在属性中添加的内容引用它。如果您没有该变量,则必须添加绝对路径
至于评论中的选项,是的,您可以告诉VS在其他地方寻找库,而不是添加额外的Env Var(或更多路径到PATH)。唯一要考虑的是执行时是否需要一些dll - 在这种情况下,您可能希望在构建后将它们复制到与exe相同的文件夹中,并在包含中使用绝对路径。它的便携性也差一点......