0

我想在 Windows 10 的 linux 子系统 (ubuntu) 中使用带有 vs2017 的 C++ 程序中的 C++ OpenCascade (OCE) 库。

我将 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.

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

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

// from oce
#include <Adaptor2d_Curve2d.hxx>

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

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

$(ProjectDir)..\oce-0.18.3\include\oce
$(RemoteRootDir)..\oce\build\inc

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

这是一个具有 Boost 依赖项而不是 OCE 的最小项目

  • 使用 ubuntu linux 子系统,用 vs2017 构建一个 c++ linux 控制台应用程序。
  • Additional Include Directories在项目属性中包含 boost headers 路径

  • #include <any.hpp> (来自 boost 的标题)添加到 main.cpp 文件中

-I 语句是正确的-I "C:\<myPath>\dependencies\boost_1_68_0\boost\",但我仍然有错误

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

我还应该做什么?

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

4

1 回答 1

1

如果没有最小的示例,就无法真正调试您的项目,但这里有一些东西可以帮助您弄清楚发生了什么:

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

于 2018-11-19T14:33:07.613 回答