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

Я пытаюсь создать 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-битном режиме у меня этой проблемы нет.


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


Ответы (1)


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

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

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

person Adam W    schedule 02.06.2010
comment
Спасибо за ссылку, однако это единственная проблема, с которой мы не сталкиваемся. Наша проблема была связана только с привязкой 64-битного приложения, поскольку мы уже создали библиотеки qt в 64-битном режиме. - person photo_tom; 02.06.2010
comment
@photo_tom: Как выглядит ваш путь к компоновщику? Как указано в этой ссылке (и, надеюсь, очевидно), если вы в конечном итоге подключитесь к 32-битным библиотекам с 64-битной сборкой, это не удастся. Убедитесь, что 32-битные библиотеки не предшествуют 64-битным в вашем пути ссылки. - person Adam W; 02.06.2010
comment
w - Вы поднимаете допустимую точку зрения о пути ссылки, которую я проверил до того, как задал вопрос. Работа в мире приложений со смешанным 32/64-битным собственным кодом - это определенно тот мир, в котором вам действительно нужно быть организованным в ваших сборках. Определенно то, над чем мне нужно работать. Моя проблема заключалась в том, что я не знал, что мне нужно включить Qtmain.lib в сборку. - person photo_tom; 03.06.2010