Ошибка компоновщика для импорта core.sys.windows.winuser при компиляции как 64-битной - PullRequest
0 голосов
/ 01 июля 2018

Я получаю ошибку компоновщика при компиляции с DMD -m64, которую я не получаю как 32-битную.

Я импортирую ShowWindow из core.sys.windows.winuser и получаю следующее:

C:\D\dmd2\windows\bin\lld-link.exe: warning: main.obj: undefined symbol: ShowWindow
error: link failed
Error: linker exited with status 1

Моя команда компилятора dmd main.d -m64 -i -O -release -inline -boundscheck=off.

Я не думаю, что исходный код будет иметь значение, кроме как сказать, что я звоню ShowWindow.

Любая помощь будет высоко ценится. Спасибо!

1 Ответ

0 голосов
/ 01 июля 2018

Благодаря Адаму из комментариев (честно, он везде полезен), решением было добавить pragma(lib, "user32").

Но поскольку после этого у меня возникло больше проблем с libcurl, я в конечном итоге просто переключился на использование ldc2, D-компилятора на основе LLVM. На мой взгляд, это намного лучше, так как избавляет от множества ошибок, связанных с «отсутствующими вещами».

Кажется, я работаю без проблем с автономными инструментами сборки Visual Studio, в отличие от DMD, который не сразу обнаруживает мои настройки среды. Возможно, если бы я позволил установщику управлять установкой VS Build Tools, мне бы не хотелось, чтобы этот большой раздутый пакет пакетов шел вместе с полной установкой Visual Studio.

...