【发布时间】:2020-07-27 14:50:37
【问题描述】:
我正在 Visual Studio 2017 中处理两个相互关联的项目。
第一个项目是Wrapper,由Wrapper.h和Wrapper.cpp组成。 Wrapper 包括 ThirdParty.h。我可以毫无问题地编译/构建Wrapper。
#include "ThirdParty.h"
std::string foo(){
return "This is Third Party text";
}
第二个项目是Principal,由Principal.h和Principal.cpp组成。 Principal 包括 Wrapper。
#include "Wrapper.h"
std::string bar(){
return Wrapper.foo() + "\nThis is Wrapper text";
}
// Expected output:
//This is Third Party text
//This is Wrapper text
但是,当我尝试构建Principal 时,我被告知它无法打开ThirdParty.h(也看不到其中使用的类型等)。
我已经尝试包含ThirdParty 存储在Properties 下的目录> C/C++ > General > Additional include directories,但这没有区别。我检查了编译设置,一切都按预期编译为Release/x64。
我该怎么办?
编辑: 这是命令行:
/permissive- /MP /GS /GL /analyze- /W3 /Gy /Zc:wchar_t /I"C:\path\to\ThirdParty" /I"C:\Path\To\Wrapper" /Zi /Gm- /O2 /sdl- /Fd"Release\vc141.pdb" /Zc:inline /fp:precise /D"_MBCS" /errorReport:prompt /WX- /Zc:forScope /Gd /Oy- /Oi /MD /FC /Fa"Release" /EHsc /nologo /Fo"Release" /Fp"Release\principal.pch" /诊断:经典
【问题讨论】:
-
如果路径中有空格,您可能需要引用它们。在
c++中编程时,我从不使用带空格的路径 -
此外,
Additional include directories路径是按配置(调试/发布)和平台(Win32/x64)配置的。确保您已更正实际构建的配置和平台的设置。 -
顺便说一句,我确实使用具有超过 2 个依赖库的项目(您称之为 2 层深),我不需要做任何特别的事情来使其工作。
-
我认为您需要为
Principal项目添加项目属性c++->Command Line。这可能有助于我们帮助您调试问题。 -
我不明白为什么它失败了抱歉。
标签: c++ visual-studio include