在交叉编译到Raspberry Pi时如何在Visual Studio中添加包含目录?

时间:2019-07-04 08:00:07

标签: c++ visual-studio-2017 raspberry-pi cross-compiling

我正在Raspberry Pi上进行c ++项目。我正在使用Visual Studio 2017将项目交叉编译到我的Raspberry。 但是,当我尝试编译项目时,在许多头文件中收到错误“无法打开源文件”。

我已经设法编译了简单的项目,但是现在我需要包含目录,并且我不知道要设置正确的语法,在Visual Studio的项目属性页上,包含目录来告诉编译器头文件的存储位置

例如,对于PCL库,我可以使用'$(INCLUDE_PCL)'包含目录。 但是,当我尝试包含pi的目录“ / usr / Include / ni”时,我无法正确设置绝对路径。这是我的属性页(https://ibb.co/G2dszrx)的屏幕截图。我尚未设置链接器目录,因为当前在编译阶段遇到错误。

有人知道如何设置绝对路径以正确包含目录吗?

编辑: 为了弄清楚这一点,我创建了一个新项目(Proj),其中包含存储在树莓派“ home / pi / projects”文件夹中的文件“ try.cpp”。该项目位于“ / home / pi / projects / Proj”文件夹中。

在项目属性页中,我有:

  • 配置属性>常规>远程构建根目录->〜/ projects
  • 配置属性>常规>远程构建项目目录-> $(RemoteRootDir)/ $(ProjectName)
  • C / C ++>常规>其他包含目录-> $(RemoteRootDir)

当我编译项目时,即使正确进入远程构建项目目录中的更多文件夹,该路径也会正确创建,并且将项目保存在正确的位置,但是找不到包含文件“ try”。 H”。

Visual Studio如何知道使用“ $(RemoteRootDir)”将项目保存到何处,但是无法添加该路径的include目录?

1 个答案:

答案 0 :(得分:0)

在进行一些搜索之后,我设法正确添加了其他包含目录和其他库。

首先,我还使用OpenNI与PCL一起工作。经过多次尝试,我发现未正确安装OpenNI。所以我设法用apt-get安装它。

第二,如果要在Raspberry设备上包括“ / home / pi / someDIR”目录,只需将“ / home / pi / someDIR”添加到Visual Studio的其他包含目录中。

对于您仍在尝试实现这一目标,Visual Studio的Merlyn Oppenheim使用VS 2019和Raspberry PI模板-> https://github.com/merlynoppenheim/sample-rasp-inc-headers

建立了一个示例项目。

对于此示例项目,Visual Studio属性页应具有:

C / C ++->常规->其他包含目录='/ home / pi / projects / vcpkg / packages / sqlite3_x64-linux / include;%(AdditionalIncludeDirectories)'

C / C ++->链接器->常规->其他库目录='/ home / pi / projects / vcpkg / packages / sqlite3_x64-linux / debug / lib;%(AdditionalLibraryDirectories)'

C / C ++->链接器->输入->库依赖='wiringPi; sqlite3; pthread; dl'