如何在交叉编译到 Raspberry Pi 时在 Visual Studio 中添加包含目录?
How to add Include directories in Visual Studio while cross-compiling to a Raspberry Pi?
我正在 Raspberry Pi 上开发一个 C++ 项目。我正在使用 Visual Studio 2017 将项目交叉编译到我的 Raspberry。
但是当我尝试编译项目时,我在很多头文件中得到了错误"cannot open source file"。
我已经设法编译了简单的项目,但现在我需要包含目录,但我不知道要设置的正确语法,在 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)”保存项目的位置,但无法添加该路径包含目录?
经过一些搜索,我成功地添加了附加包含目录和附加库。
首先,我还使用 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'
我正在 Raspberry Pi 上开发一个 C++ 项目。我正在使用 Visual Studio 2017 将项目交叉编译到我的 Raspberry。 但是当我尝试编译项目时,我在很多头文件中得到了错误"cannot open source file"。
我已经设法编译了简单的项目,但现在我需要包含目录,但我不知道要设置的正确语法,在 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)”保存项目的位置,但无法添加该路径包含目录?
经过一些搜索,我成功地添加了附加包含目录和附加库。
首先,我还使用 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'