【发布时间】:2015-01-29 10:44:09
【问题描述】:
我有一个具有这种结构的 VS2013 解决方案:
- gtestalgo 项目,在库 algo.lib 上带有 gtests
- 算法项目,编译为 dll 并将 .lib 导出到 $(SolutionDir)lib/Release_x64 文件夹
在 algo 项目上存在 gtestalgo 项目的构建依赖关系。
算法项目单独构建成功。算法项目包括英特尔 TBB:链接器属性包含附加库目录“$(tbb_path)\lib\intel64\$(tbb_subdir)”并输入“tbb.lib”。
gtestalgo 项目无法编译。错误都与TBB有关。更准确地说,错误是指算法项目中无法识别 TBB 的文件,例如“TBB 不是类或命名空间名称”。 gtestalgo 项目有../algo 作为附加包含目录,其中../algo 包含算法项目的所有源文件和头文件。 gtestalgo 项目链接库 algo.lib,并且正确设置了链接器附加库目录和输入。 gtestalgo 项目中的源包括来自 algo 项目的几个头文件:#include "algo_main.h" 等...
我尝试将 TBB 链接到 gtestalgo 项目(具有与算法项目中相同的链接器属性),并且我还尝试删除此链接。在这两种情况下,编译错误是相同的。
algo项目怎么编译了,gtestalgo项目没有 编译,抱怨 TBB 在来自 algo 的来源中无法识别 项目 ?
如果没有代码,我应该将 TBB 库链接到 gtestalgo 项目吗? gtestalgo 项目源使用 TBB(algo 项目仅实现 待定 API)?
知道这里可能出了什么问题吗?
【问题讨论】:
-
您使用的是 MSVC 还是 Intel Parallel XE?
-
英特尔线程构建模块
-
不,我的意思是编译器构建环境。您使用的是 Microsoft 库存工具链还是英特尔工具链。
-
你在
algo项目中使用预编译头文件(stdafx.h)吗?它可能包含对gtestalgo不可见的包含。 -
@MorphingDragon Visual Studio 编译器
标签: c++ visual-studio-2010 visual-studio dll tbb