Building Qt 5.2.0 for Beagleboard on Windows
-
hello,
I`m trying to compile Qt 5.2.0 static with Sourcery CodeBench for a Beaglebone and it works without any error. But if I want to use the compiled Version in QT with the compiler arm-none-eabi-g++ or arm-none-gnueabi-g++ i get this error:
process_begin: CreateProcess(NULL, C:\Sourcery_standard\bin\arm-none-linux-eabi-g++.exe -c -pipe -march=armv7-a -mtune=cortex-a8 -mfloat-abi=hard -g -Wall -W -fPIE -DQT_STATIC_BUILD -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -I..\qt-everywhere-opensource-src-5.2.0_9Versuch\qtbase\mkspecs\linux-arm-gnueabi-g++ -I..\untitled3 -I. -o main.obj ..\untitled3\main.cpp, ...) failed.
make (e=2): Das System kann die angegebene Datei nicht finden.
make: *** [main.obj] Error 2
16:03:23: Der Prozess "C:\Sourcery_standard\bin\make.exe" wurde mit dem Rückgabewert 2 beendet.
I'm using windows 7 with Qt 5.2.0May you help me?
sincerly Yours
Michael Endresapendix:
qmake.conf:qmake configuration for building with arm-linux-gnueabi-g++
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index
QMAKE_INCREMENTAL_STYLE = sublibinclude(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)modifications to g++.conf
QMAKE_CC = C:\Sourcery_standard\bin\arm-none-linux-eabi-gcc
QMAKE_CXX = C:\Sourcery_standard\bin\arm-none-linux-eabi-g++
QMAKE_LINK = C:\Sourcery_standard\bin\arm-none-linux-eabi-g++
QMAKE_LINK_SHLIB = C:\Sourcery_standard\bin\arm-linux-eabi-g++modifications to linux.conf
QMAKE_AR = C:\Sourcery_standard\bin\arm-none-linux-eabi-ar cqs
QMAKE_OBJCOPY = C:\Sourcery_standard\bin\arm-none-linux-eabi-objcopy
QMAKE_NM = C:\Sourcery_standard\bin\arm-none-linux-eabi-nm -P
QMAKE_STRIP = C:\Sourcery_standard\bin\arm-none-linux-eabi-strip
COMPILER_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfloat-abi=hard
QMAKE_LIBS += -lrt -lpthread -ldl
QMAKE_CFLAGS += $${COMPILER_FLAGS}
QMAKE_CXXFLAGS += $${COMPILER_FLAGS}
QMAKE_CXXFLAGS_RELEASE += -O3QMAKE_CFLAGS_RELEASE = -Os -momit-leaf-frame-pointer
QMAKE_LFLAGS = -static -static-libgcc
DEFINES += QT_STATIC_BUILD
load(qt_config)configure.exe:
C:\qt-everywhere-opensource-src-5.2.0_10Versuch\qtbase>configure.exe -embedded -
platform win32-g++ -xplatform linux-arm-gnueabi-g++ -no-angle -opengl desktop -s
tatic -
i`ve found the mistake... the name of the compiler was wrong. the correct name is arm-none-linux-gnueabi-g++.
But now i have a new problem in configure.exe :C:\qt-everywhere-opensource-src-5.2.0_12Versuch\qtbase>configure -embedded -plat
form win32-g++ -xplatform linux-arm-gnueabi-g++ -no-angle -opengl desktop -stati
c -opensource -nomake examplesThis is the Qt for Windows Open Source Edition.
You are licensed to use this software under the terms of
the GNU Lesser General Public License (LGPL) version 2.1.Type 'L' to view the Lesser GNU General Public License version 2.1 (LGPLv2.1).
Type 'y' to accept this license offer.
Type 'n' to decline this license offer.Do you accept the terms of the license?
y
Creating qmake...
mingw32-make: Nothing to be done for 'first'.
Running configuration tests...
c:/sourcery_standard/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.1/../../../../arm
-none-linux-gnueabi/bin/ld.exe: error: arch.obj uses VFP register arguments, arc
h does not
c:/sourcery_standard/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.1/../../../../arm
-none-linux-gnueabi/bin/ld.exe: failed to merge target specific data of file arc
h.obj
collect2.exe: error: ld returned 1 exit status
mingw32-make: *** [arch] Error 1
Could not find output file: No such file or directoryAny Ideas?
###########
qmake configuration for building with arm-linux-gnueabi-g++
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index
QMAKE_INCREMENTAL_STYLE = sublibinclude(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)modifications to g++.conf
QMAKE_CC = C:\Sourcery_standard\bin\arm-none-linux-gnueabi-gcc.exe
QMAKE_CXX = C:\Sourcery_standard\bin\arm-none-linux-gnueabi-g++.exe
QMAKE_LINK = C:\Sourcery_standard\bin\arm-none-linux-gnueabi-g++.exe
QMAKE_LINK_SHLIB = C:\Sourcery_standard\bin\arm-none-linux-gnueabi-g++.exemodifications to linux.conf
QMAKE_AR = C:\Sourcery_standard\bin\arm-none-linux-gnueabi-ar.exe cqs
QMAKE_OBJCOPY = C:\Sourcery_standard\bin\arm-none-linux-gnueabi-objcopy.exe
QMAKE_NM = C:\Sourcery_standard\bin\arm-none-linux-gnueabi-nm.exe -P
QMAKE_STRIP = C:\Sourcery_standard\bin\arm-none-linux-gnueabi-strip.exe
COMPILER_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfloat-abi=hard -mthumb
QMAKE_CFLAGS += $${COMPILER_FLAGS}
QMAKE_CXXFLAGS += $${COMPILER_FLAGS}
QMAKE_CXXFLAGS_RELEASE += -O3QMAKE_CFLAGS_RELEASE = -Os -momit-leaf-frame-pointer
QMAKE_LFLAGS = -static -static-libgcc
DEFINES += QT_STATIC_BUILD
load(qt_config) -
Check your COMPILER_FLAGS variable in the qmake.conf file.
The option '-mfloat-abi=' needs to match your toolchain type. The default for qtbase/mkspecs/devices/linux-beagleboard-g++/qmake.conf is 'softfp', but I had to change mine for the linaro toolchain to 'hard'
-
can you post your qmake.conf?
-
Hi,
I have a simlilar problem.
Error message:
Der Befehl "test" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Ein Unterverzeichnis oder eine Datei mit dem Namen "qtbase" existiert bereits.
Folgender Fehler trat auf: qtbase.
makefile:60: recipe for target 'module-qtbase-make_first' failed
mingw32-make: *** [module-qtbase-make_first] Error 1
mingw32-make: Target 'first' not remade because of errors
System:
Windows 7 Enterprise
Qt 5.2.0
Linaro Toolchain (https://launchpad.net/linaro-toolchain-binaries/+download)
http://download.qt-project.org/official_releases/qt/5.2/5.2.1/single/qt-everywhere-opensource-src-5.2.1.zip
My compile script:
echo "Qt static Cross-Compiler
@ECHO off:: In den Ordner springen
@if NOT exist "C:\Qt_BBB" mkdir "C:\Qt_BBB"
@cd "C:\Qt_BBB":: alten Ordner löschen => entzippen
@if exist qt-everywhere-opensource-src-5.2.1 rm -R qt-everywhere-opensource-src-5.2.1
"C:\Program Files (x86)\7-Zip\7z.exe" x qt-everywhere-opensource-src-5.2.1.zip:: 1. Ordner kopieren (Remote PC)
cd "C:\Qt_BBB\qt-everywhere-opensource-src-5.2.1\qtbase\mkspecs\devices"
@if exist "linux-beaglebone-g++" rm -R linux-beaglebone-g++
@if NOT exist "linux-beaglebone-g++" mkdir "linux-beaglebone-g++"
xcopy "C:\Qt_BBB\linux-beaglebone-g++*" ".\linux-beaglebone-g++" /S/E:: 2. Ordner kopieren (PC Plattform)
cd "C:\Qt_BBB\qt-everywhere-opensource-src-5.2.1\qtbase\mkspecs"
::@if exist "win32-beaglebone-g++" rm -R win32-beaglebone-g++
::@if NOT exist "win32-beaglebone-g++" mkdir "win32-beaglebone-g++"
@if exist "win32-g++" rm -R win32-g++
@if NOT exist "win32-g++" mkdir "win32-g++"
xcopy "C:\Qt_BBB\win32-g++*" ".\win32-g++" /S/E:: 3. Ordner kopieren
@if exist "linux-linaro-gnueabihf-g++" rm -R linux-linaro-gnueabihf-g++
@if NOT exist "linux-linaro-gnueabihf-g++" mkdir "linux-linaro-gnueabihf-g++"
xcopy "C:\Qt_BBB\linux-linaro-gnueabi-g++*" ".\linux-linaro-gnueabihf-g++" /S/E:: Umgebungsvariable setzen
::SET PATH=C:\Qt_BBB\qt-everywhere-opensource-src-5.2.1;C:\Qt\Tools\mingw48_32\bin;C:\Qt\Tools\mingw48_32\opt\bin;C:\Windows\system32;C:\Windows
SET PATH=C:\Qt_BBB\qt-everywhere-opensource-src-5.2.1;C:\Qt\Tools\mingw48_32\bin;C:\Qt\Tools\mingw48_32\opt\bin;C:\Windows\system32;C:\Windows;"C:\Program Files (x86)\Linaro\gcc-linaro-arm-linux-gnueabihf-4.8-2013.10";"C:\Program Files (x86)\Linaro\gcc-linaro-arm-linux-gnueabihf-4.8-2013.10\bin";"C:\Qt_BBB\qt-everywhere-opensource-src-5.2.1\qtbase\config.tests\arch"
SET LANG="en"SET QT_INSTALL_PREFIX=C:\Qt_BBB\Qt_Static_Win
cd "C:\Qt_BBB"
@if NOT exist "Qt_Static_Win" mkdir ".":: Arch Dateien einbinden
cd "C:\Qt_BBB\qt-everywhere-opensource-src-5.2.1\qtbase\config.tests\arch"
xcopy "C:\Qt_BBB\build*" "." /S/E:: Qt configurieren
cd "C:\Qt_BBB\qt-everywhere-opensource-src-5.2.1"::@if exist "configure.bat" rm configure.bat
xcopy "C:\Qt_BBB\configure.bat" "." /S/E/Yconfigure.bat -static -debug-and-release -platform win32-g++ -prefix "C:\Qt_BBB\Qt_Static_Win" -xplatform linux-linaro-gnueabihf-g++ -device linux-beaglebone-g++ -device-option CROSS_COMPILE="C:\Linaro\gcc-linaro-arm-linux-gnueabihf-4.8-2013.10\bin\arm-linux-gnueabihf-" -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -qt-sql-sqlite -no-openssl -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests
::configure.bat -static -debug-and-release -platform win32-beaglebone-g++ -prefix "C:\Qt_BBB\Qt_Static_Win" -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -qt-sql-sqlite -no-openssl -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests
:: Wie bei Windows mit Static (funktioniert)
::configure.bat -static -debug-and-release -platform win32-g++ -prefix "C:\Qt_BBB\Qt_Static_Win" -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -qt-sql-sqlite -no-openssl -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests:: LINUX
:: –prefix /usr/local/qt-5.2 -xplatform linux-linaro-gnueabihf-g++ -device linux-beaglebone-g++ -device-option CROSS_COMPILE=/usr/local/linaro/bin/arm-linux-gnueabihf- -qt-zlib -qt-libpng -qt-libjpeg -opensource -confirm-license -no-largefile -no-accessibility -no-gif -no-nis -no-cups -v:: Static
:: -static -debug-and-release -platform win32-g++ -prefix $QtDir -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -qt-sql-sqlite -no-openssl -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests:: Bauen
mingw32-make -k -j4:: Qt_Static_Win statt src !!!
:: Datei anpassen für Qt Static
::cd "C:\Qt_BBB\Qt_Static_Win\qtbase\mkspecs"
::SET "ziel_datei=.\win32-beaglebone-g++\qmake.conf"::ECHO CONFIG += static >> %ziel_datei%
-
File modifications:
=> linux-beagleboard-g++
C:\Qt_BBB\linux-beaglebone-g++\qmake.confmodified
COMPILER_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard
add
[QT-STATIC-PATCH]
QMAKE_LFLAGS += -static -static-libgcc
QMAKE_CFLAGS_RELEASE -= -O2
QMAKE_CFLAGS_RELEASE += -Os -momit-leaf-frame-pointer
DEFINES += QT_STATIC_BUILD=> linux-arm-gnueabi-g++
C:\Qt_BBB\linux-linaro-gnueabihf-g++\qmake.confadd
[QT-STATIC-PATCH]
QMAKE_LFLAGS += -static -static-libgcc
QMAKE_CFLAGS_RELEASE -= -O2
QMAKE_CFLAGS_RELEASE += -Os -momit-leaf-frame-pointer
DEFINES += QT_STATIC_BUILD=> win32-g++
C:\Qt_BBB\win32-g++\qmake.confadd
[QT-STATIC-PATCH]
QMAKE_LFLAGS += -static -static-libgcc
QMAKE_CFLAGS_RELEASE -= -O2
QMAKE_CFLAGS_RELEASE += -Os -momit-leaf-frame-pointer
DEFINES += QT_STATIC_BUILD===============================
I compiled Arch.pro with static settings.
Have everybody cross compile from Win 7 to BBB?
Thank you for helping.