Включение флага --enable-stdcall-fixup с помощью gnatmake?

Я использую gnatmake для создания своего проекта Ada и получаю следующее предупреждение:

Warning: resolving _LoadLibraryA by linking to _LoadLibraryA@4
Use --enable-stdcall-fixup to disable these warnings
Use --disable-stdcall-fixup to disable these fixups
Warning: resolving _GetProcAddress by linking to _GetProcAddress@8

Я пытаюсь передать --endable-stdcall-fixup в gnatmake, но утверждает, что это не переключатель, как я могу передать параметры компоновщика через gnatmake?

gnatmake --enable-stdcall-fixup main.adb
gnatmake: invalid switch: --enable-stdcall-fixup

(1) РЕДАКТИРОВАТЬ:

После использования изменений, предложенных в ответе, я все еще получаю ту же ошибку, но на этот раз она, похоже, правильно передается компоновщику.

gnatmake main.adb -f -largs --enable-stdcall-fixup
gcc -c main.adb
gcc -c winapi.ads
gnatbind -x main.ali
gnatlink main.ali --enable-stdcall-fixup
Warning: resolving _LoadLibraryA by linking to _LoadLibraryA@4
Use --enable-stdcall-fixup to disable these warnings
Use --disable-stdcall-fixup to disable these fixups
Warning: resolving _GetProcAddress by linking to _GetProcAddress@8

person jacob    schedule 25.05.2018    source источник
comment
-largs -foo означает передать -foo gnatlink; но gnatlink является внешним интерфейсом к реальному компоновщику и может не передавать его туда, где он нужен. Попробуйте -largs -Wl,--enable-stdcall-fixup (-Wl означает переход к фактическому компоновщику, -Wc к фактическому компилятору)   -  person Simon Wright    schedule 25.05.2018
comment
@SimonWright Ты был прав! Благодарю вас!   -  person jacob    schedule 25.05.2018


Ответы (1)


Попробуйте -largs opts

От gnatmake --help:

Чтобы передать произвольный переключатель компилятору, компоновщику или компоновщику:
-cargs opts opts передаются компилятору
-bargs opts opts передаются компоновщику
-largs opts opts передаются компоновщику< br> -margs opts опции передаются в gnatmake

person egilhh    schedule 25.05.2018
comment
Эй, спасибо за подробную информацию о -largs, кажется, что он правильно передается компоновщику, но все равно получает ту же ошибку. - person jacob; 25.05.2018