Настройка кросс-компиляции в QtCreator |
Здравствуйте, гость ( Вход | Регистрация )
Настройка кросс-компиляции в QtCreator |
kuviufmook |
16.5.2017, 14:25
Сообщение
#1
|
Новичок Группа: Неактивирован Сообщений: 1 Регистрация: 16.5.2017 Пользователь №: 4544 Спасибо сказали: 4 раз(а) Репутация: 0 |
Привет всем. У меня простая очень проблема которую своими силами решить не получилось.
Я пытаюсь разобраться с кросс-компиляцией под Linux для Windows. Моя ОС Arch64. Поставил mingw-w64. Собрал вот такой исходник:
Собирал его вот так: $ i686-w64-mingw32-g++ main.cpp -static -static-libgcc -static-libstdc++ После этого вот так: $ wine a.exe Hello World! Все работает! И вот мне хотелось бы сделать проект в QtCreator для этого исходника и собрать все в QtCreator. Т.е. plain application без использования qt библиотек для начала. Ну и вообщем у меня почему то не линкуются статически стандартные библиотеки. Проект собирается но при выполнении: $ wine a.exe Я получаю вот что: err:module:import_dll Library libstdc++-6.dll (which is needed by L"Z:\\..\\debug\\plainMinGWCCTest.exe") not found err:module:LdrInitializeThunk Main exe initialization for L"Z:\\..\\debug\\plainMinGWCCTest.exe" failed, status c0000135 *.pro файл: Раскрывающийся текст TEMPLATE = app CONFIG += console c++11 CONFIG -= app_bundle CONFIG -= qt CONFIG += static SOURCES += main.cpp qmake.conf: Раскрывающийся текст # # qmake configuration for win32-x-g++ # # Written for MinGW # # Cross compile example for i686-w64-mingw32-g++: # configure -xplatform win32-g++ -device-option CROSS_COMPILE=i686-w64-mingw32- # MAKEFILE_GENERATOR = MINGW load(device_config) equals(QMAKE_HOST.os, Windows): EXE_SUFFIX = .exe TEMPLATE = app CONFIG += qt warn_on release link_prl copy_dir_files debug_and_release debug_and_release_target precompile_header QT += core gui DEFINES += UNICODE QMAKE_COMPILER_DEFINES += __GNUC__ WIN WIN32 QMAKE_EXT_OBJ = .o QMAKE_EXT_RES = _res.o QMAKE_CC = $${CROSS_COMPILE}gcc QMAKE_LEX = flex QMAKE_LEXFLAGS = QMAKE_YACC = byacc QMAKE_YACCFLAGS = -d QMAKE_CFLAGS = -pipe -m32 QMAKE_CFLAGS_DEPS = -M QMAKE_CFLAGS_WARN_ON = -Wall -Wextra QMAKE_CFLAGS_WARN_OFF = -w QMAKE_CFLAGS_RELEASE = -O2 QMAKE_CFLAGS_DEBUG = -g QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses QMAKE_CXX = $${CROSS_COMPILE}g++ QMAKE_CXXFLAGS = $$QMAKE_CFLAGS QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD QMAKE_CXXFLAGS_RTTI_ON = -frtti QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions QMAKE_INCDIR = /usr/i686-w64-mingw32/include QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS] QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS] QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $< QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< QMAKE_LINK = $${CROSS_COMPILE}g++ QMAKE_LINK_C = $${CROSS_COMPILE}gcc QMAKE_LFLAGS = -m32 -mthreads -static -static-libgcc -static-libstdc++ -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mwindows QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads QMAKE_LFLAGS_EXCEPTIONS_OFF = QMAKE_LFLAGS_RELEASE = -Wl,-s QMAKE_LFLAGS_DEBUG = QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows QMAKE_LFLAGS_DLL = -shared QMAKE_LINK_OBJECT_MAX = 10 QMAKE_LINK_OBJECT_SCRIPT= object_script QMAKE_PREFIX_STATICLIB = lib QMAKE_EXTENSION_STATICLIB = a QMAKE_LIBS = QMAKE_LIBS_CORE = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lws2_32 -lole32 -luuid -luser32 -ladvapi32 QMAKE_LIBS_NETWORK = -lws2_32 QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32 QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32 QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain !isEmpty(QMAKE_SH) { MINGW_IN_SHELL = 1 QMAKE_DIR_SEP = / QMAKE_QMAKE ~= s,\\\\,/, QMAKE_COPY = cp QMAKE_COPY_DIR = cp -r QMAKE_MOVE = mv QMAKE_DEL_FILE = rm QMAKE_MKDIR = mkdir -p QMAKE_DEL_DIR = rmdir QMAKE_CHK_DIR_EXISTS = test -d } else { QMAKE_COPY = copy /y QMAKE_COPY_DIR = xcopy /s /q /y /i QMAKE_MOVE = move QMAKE_DEL_FILE = del QMAKE_MKDIR = mkdir QMAKE_DEL_DIR = rmdir QMAKE_CHK_DIR_EXISTS = if not exist } QMAKE_MOC = /usr/share/qt4/bin/moc QMAKE_UIC = /usr/share/qt4/bin/uic QMAKE_IDC = /usr/share/qt4/bin/idc QMAKE_RCC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}rcc$${EXE_SUFFIX} QMAKE_IDL = midl QMAKE_LIB = $${CROSS_COMPILE}ar -ru QMAKE_RC = $${CROSS_COMPILE}windres QMAKE_ZIP = zip -r -9 QMAKE_STRIP = $${CROSS_COMPILE}strip QMAKE_STRIPFLAGS_LIB += --strip-unneeded load(qt_config) Kits Раскрывающийся текст Compilers Раскрывающийся текст Что я делаю не так? |
|
|
Текстовая версия | Сейчас: 26.11.2024, 2:09 |