不能在vsi2017的linux子系统中包含头文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不能在vsi2017的linux子系统中包含头文件相关的知识,希望对你有一定的参考价值。

我想在一个C ++程序中使用C ++ OpenCascade(OCE)库,在windows 10中的linux子系统(ubuntu)中使用vs2017。

我把OCE编译成linux子系统;我在Windows中也有OCE编译的二进制文件。

当我尝试在我的代码(#include <Adaptor2d_Curve2d.hxx>)中包含来自OCE的标头时,我收到此错误:

error : Adaptor2d_Curve2d.hxx: No such file or directory
error : #include <Adaptor2d_Curve2d.hxx>
error :          ^~~~~~~~~~~~~~~~~~~~~~~
error : compilation terminated.

我使用$(ProjectDir)或$(RemoteRootDir)路径在additional include directories的vs项目中添加了OCE include路径。我检查过,路径是纠正的。

我创建了一个linux控制台应用程序。我的代码:

// from oce
#include <Adaptor2d_Curve2d.hxx>

int main()
{
   printf("hello from CAO3DConverterTestApp!
");
   return 0;
}

我在项目设置中将这些行添加到Additional Include Directories

$(ProjectDir)..oce-0.18.3includeoce
$(RemoteRootDir)..oceuildinc

那么在Windows 10的linux子系统中使用vs2017在C ++代码中添加外部库和头文件的步骤是什么?

这是一个带有Boost依赖项而不是ICE的最小项目

  • 使用ubuntu linux子系统使用vs2017构建c ++ linux控制台应用程序。
  • 从项目属性中包含Additional Include Directories中的boost标头路径
  • #include <any.hpp>(来自boost的标题)添加到main.cpp文件中

-I语句是纠正-I "C:<myPath>dependenciesoost_1_68_0oost",但我仍然有错误

error : any.hpp: No such file or directory
error :  #include <any.hpp>
error :           ^~~~~~~~~
error : compilation terminated.

我还该怎么办?

refs:https://blogs.msdn.microsoft.com/vcblog/2017/02/08/targeting-windows-subsystem-for-linux-from-visual-studio/

答案

没有最小的例子,无法真正调试您的项目,但这里可以帮助您弄清楚发生了什么:

在VS2017中右键单击您的项目,选择属性。在C / C ++下选择命令行。在这里,您可以看到IDE用于编译源文件的命令行。检查所有/ I语句,并确保其中一个指向Adaptor2d_Curve2d.hxx所在的位置。

以上是关于不能在vsi2017的linux子系统中包含头文件的主要内容,如果未能解决你的问题,请参考以下文章

在 PostgreSQL C 扩展中包含头文件

如何在 GCC 搜索路径中包含头文件?

在作为朋友的类中包含头文件

如何在 Qt Creator 的 CMakeLists.txt 中包含头文件?

在 C++ 中包含头文件时尖括号 < > 和双引号“”之间的区别? [复制]

vS 2008 中包含头文件vector的问题: