Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Ошибка связывания при сборке 64-битного приложения Qt на 32-битной машине XP

Автор вопроса: photo_tomОтветов: 1

Я пытаюсь создать 64-битную версию своего приложения (и да, мне действительно нужна память) на моем 32-битном xp dev-боксе для производственного тестирования на нашем сервере Vista64.

Раньше я создавал без каких-либо ошибок DLL Qt 4.6.2 в 64-битном режиме. Этот шаг прошел очень гладко.

Чтобы начать сборку, я пытаюсь пересобрать демонстрацию Qt Star Delegate в 64-битном режиме. Я преобразовал 32-битное приложение в 64-битное, изменив конфигурацию приложения и настроив библиотеку на 64-битные олени. Теперь, когда я перехожу по ссылке, я получаю следующую ошибку при связывании

1>------ Build started: Project: stardelegate, Configuration: Release x64 ------
1>Linking...
1>MSVCRT.lib(crtexew.obj) : error LNK2001: unresolved external symbol WinMain
1>release64\stardelegate.exe : fatal error LNK1120: 1 unresolved externals

Предложения?

изменить - после еще нескольких поисков обнаружил, что если я свяжусь как консольное приложение, оно будет работать и запускаться. Но не как приложение для Windows. А в 32-битном режиме у меня этой проблемы нет.

  • Вы используете WinMain, _tWinMain или что-то еще в качестве своей основной функции? Кроме того, не могли бы вы опубликовать, какую точку входа использует компоновщик? Спасибо. Troubadour 02.06.2010
  • Я использую стандартную int main () и точку входа по умолчанию. Однако ваш комментарий заставил меня задуматься о главном в целом. Я сравнил настройки своего проекта с тем, который работал, и обнаружил, что я пренебрегал включением Qtmain, который включает функцию WinMain. Сейчас работает. Спасибо, я хотел бы проверить ваш комментарий в качестве ответа. photo_tom 02.06.2010

c++visual-studioqtlinker64-bit

Ответы

Ответ 1 · рейтинг 2 · Adam W

приложение qt для 64-разрядных окон

Изменить: Неважно, вы его нашли. Вам необходимо установить ссылку на qtmain, если вы не используете CMake или qmake, как указано здесь: http://doc.qt.io/archives/4.6/modules.html.

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы