Название: [Решено] Сборка проекта с ассемблерным кодом компилятором MinGW 64-bit Отправлено: Hirurg от Июнь 08, 2021, 10:55 Здравствуйте, помогите, пожалуйста, разобраться!
У меня есть два почти идентичных проекта, где в файлах с расширением .s написан ассемблерный код функции, вызывающей cpuid. Разница лишь в том, что один из них я компилирую в 32-битное приложение, а второй-в 64-битное, соответственно и отличаются они только ассемблерным кодом, а точнее названиями команд и регистров Привожу код: файл cpu_features.s из 32-битного варианта: Код файл cpu_features.s из 64-битного варианта: Код два файла с объявлением и вызовом функции идентичны в обоих проектах: cpu_features.h Код main.c Код И ещё файл проекта: Код: TEMPLATE = app Для сборки использую комплекты Qt 5.12.11 MinGW под обе соответствующие разрядности. Для 32-битной сборки никаких проблем нет, а под 64-бита получаю вот такой вывод: Цитировать 10:35:13: Запускается: «D:\Qt\Tools\mingw730_64\bin\mingw32-make.exe» -j4 Ниже прикреплю оба проекта в архивах, подскажите пожалуйста, как собрать проект под x64?D:/Qt/Tools/mingw730_64/bin/mingw32-make -f Makefile.Debug mingw32-make[1]: Entering directory 'D:/QtProjects/tmp/build-CpuFeatures_x64-Desktop_Qt_5_12_11_MinGW_64_bit-Debug' gcc -c -fno-keep-inline-dllexport -g -Wall -W -Wextra -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_QML_DEBUG -I..\CpuFeatures_x64 -I. -I..\..\..\Qt\5.12.11\mingw73_64\mkspecs\win32-g++ -o debug\main.o ..\CpuFeatures_x64\main.c gcc -c -fno-keep-inline-dllexport -g -Wall -W -Wextra -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_QML_DEBUG -I..\CpuFeatures_x64 -I. -I..\..\..\Qt\5.12.11\mingw73_64\mkspecs\win32-g++ -o debug\cpu_features.o ..\CpuFeatures_x64\cpu_features.s g++ -Wl,-subsystem,console -mthreads -o debug\CpuFeatures_x64.exe debug/main.o debug/cpu_features.o debug/main.o: In function `main': D:\QtProjects\tmp\build-CpuFeatures_x64-Desktop_Qt_5_12_11_MinGW_64_bit-Debug/../CpuFeatures_x64/main.c:6: undefined reference to `cpu_features' collect2.exe: error: ld returned 1 exit status mingw32-make[1]: *** [Makefile.Debug:68: debug/CpuFeatures_x64.exe] Error 1 mingw32-make[1]: Leaving directory 'D:/QtProjects/tmp/build-CpuFeatures_x64-Desktop_Qt_5_12_11_MinGW_64_bit-Debug' mingw32-make: *** [Makefile:38: debug] Error 2 10:35:15: Процесс «D:\Qt\Tools\mingw730_64\bin\mingw32-make.exe» завершился с кодом 2. Ошибка при сборке/развёртывании проекта CpuFeatures_x64 (комплект: Desktop Qt 5.12.11 MinGW 64-bit) Во время выполнения этапа «Сборка» 10:35:15: Прошло времени: 00:03. Название: Re: Сборка проекта с ассемблерным кодом компилятором MinGW 64-bit Отправлено: alex312 от Июнь 09, 2021, 14:57 Код
в 64битной версии надо пользовать нижнее подчеркивание. Т.е имя функции в С части совпадает с именем в ассемблере. Название: Re: Сборка проекта с ассемблерным кодом компилятором MinGW 64-bit Отправлено: Hirurg от Июнь 11, 2021, 09:28 Спасибо, огромное! Догадывался, что не учитываю какой-то нюанс, но нигде не мог найти нужную информацию. Заработало!
|