Ошибка при компиляции кода C ++ на Linux для Windows - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь скомпилировать приложение C ++ для windows на linux хосте с помощью следующей команды:

i686-w64-mingw32-g++ -o app.exe app.cpp

Но есть импорт указанных c windows библиотека в коде:

#import "mscorlib.tlb" raw_interfaces_only    \
   high_property_prefixes("_get","_put","_putref")  \
   auto_rename

И я получаю эту ошибку:

app.cpp:26:9: fatal error: mscorlib.tlb: No such file or directory

Я пытался скопировать файл с хоста windows и поместить его на каталог с файлом. cpp, но это не работает эфир. Это часть вывода компилятора, когда я делаю так:

mscorlib.tlb:1835:19: warning: null character(s) ignored
mscorlib.tlb:1835:21: error: stray ‘\4’ in program
mscorlib.tlb:1835:22: warning: null character(s) ignored
mscorlib.tlb:1835:24: error: stray ‘\1’ in program
mscorlib.tlb:1835:25: warning: null character(s) ignored
mscorlib.tlb:1835:29: error: stray ‘\2’ in program

Как исправить мою проблему? Большое спасибо

1 Ответ

1 голос
/ 26 февраля 2020

#import и mscorlib - это C ++. NET (язык, производный от C ++ от Microsoft®), не C ++. MinGW этого не поддерживает и не может поддерживать (C ++. NET слишком сильно отличается внутри, несмотря на схожий синтаксис). Попробуйте использовать Microsoft®. NET Core, он кроссплатформенный и должен иметь компилятор C ++. NET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...