проблема с компиляцией 64 bt dll на 32-битных окнах через TDM-GCC - PullRequest
0 голосов
/ 09 марта 2019

Я использую 32-битные окна, а мой помощник имеет 64-битные.Мы оба используем gcc (я специально использую tdm-gcc. Мой помощник использует qt, который, насколько я знаю, также использует gcc).Я хотел написать очень простой плагин в форме простого .dll, чтобы моя помощница могла использовать его из своего приложения.Для этого мне нужно просто скомпилировать мой .dll для Windows 32 (например, 32-разрядная XP) как .dll для Windows 64 (например, Win 7 или 10).

Я обнаружил, что -m64вариант может сработать.Однако, когда я компилирую это, и она связывает это и пытается вызвать мои функции, это показывает, что это приложение с этим плагином .dll, которое я сделал (на 32-битных окнах с tdm-gcc с этой опцией -m64), молча вылетает (программазаканчивается и вывод не генерируется).

В чем проблема?Тест, который мы выполняли, был прост, как экспорт функции, которая просто возвращает 232323, и попытка получить и распечатать ее на стороне приложения - но все еще не работает. Я думаю, что этот 64-битный .dll неправильный (зависимостьУокер показывает зависимость от kernel32, разве это не 32-битная специфика?)

Должен ли я сделать что-то большее, чем просто поставить -m64, чтобы мой плагин компилировался в 64-битную и работал там правильно?

1 Ответ

0 голосов
/ 26 марта 2019

Это показало, что это наиболее вероятно работает. Она не может связать его в QT по неизвестным мне причинам (мы работаем удаленно, и я не могу проверить), но она успешно связала это динамически, так что кажется, что -m64 на самом деле достаточно

...