我想在一个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!\n");
return 0;
}
我在项目设置中将这些行添加到Additional Include Directories
中
$(ProjectDir)..\oce-0.18.3\include\oce
$(RemoteRootDir)..\oce\build\inc
那么在Windows 10的linux子系统中使用vs2017在C ++代码中添加外部库和头文件的步骤是什么?
这是一个带有Boost依赖项而不是ICE的最小项目
Additional Include Directories
中的boost标头路径#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.
我还该怎么办?
没有最小的例子,无法真正调试您的项目,但这里可以帮助您弄清楚发生了什么:
在VS2017中右键单击您的项目,选择属性。在C / C ++下选择命令行。在这里,您可以看到IDE用于编译源文件的命令行。检查所有/ I语句,并确保其中一个指向Adaptor2d_Curve2d.hxx
所在的位置。