не может включать заголовок в подсистеме Linux с vs2017 - PullRequest
0 голосов
/ 18 ноября 2018

Я хочу использовать библиотеки C ++ OpenCascade (OCE) в программе C ++ с vs2017 внутри подсистемы Linux (Ubuntu) из Windows 10.

Я скомпилировал OCE в подсистему linux; У меня также есть скомпилированные двоичные файлы OCE в Windows.

Когда я пытаюсь включить заголовок из OCE в мой код (#include <Adaptor2d_Curve2d.hxx>), я получаю эту ошибку:

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

Я добавил путь включения OCE в свой проект против additional include directories, используя путь $ (ProjectDir) или $ (RemoteRootDir). Я проверил, пути правильные.

Я создал консольное приложение 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

Так какова процедура добавления внешних библиотек и заголовков в код C ++ с использованием vs2017 в подсистеме Linux из Windows 10?

Вот минимальный проект с Boost-зависимостями вместо OCE

  • сборка консольного приложения c ++ linux с vs2017 с использованием подсистемы ubuntu linux.
  • включает путь повышения заголовков в Additional Include Directories из свойств проекта

  • добавить #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/

1 Ответ

0 голосов
/ 19 ноября 2018

Не могу отладить ваш проект без минимального примера, но вот кое-что, что может помочь вам понять, что происходит:

В VS2017 щелкните правой кнопкой мыши свой проект, выберите свойства. Под C / C ++ выберите командную строку. Здесь вы можете увидеть командную строку, которую IDE использует для компиляции ваших исходных файлов. Проверьте все / I заявления и убедитесь, что один из них указывает, где находится Adaptor2d_Curve2d.hxx.

...