windows – 警告:找不到条目符号nable-stdcall-fixup;违约
这个mingw包含
gcc 4.6.3,名称为 – i686-w64-mingw32.
在Windows上,一个Qt’s.pro文件w.r.t是一个hello world程序: QT += core gui TEMPLATE = app TARGET = ef SOURCES = ef.cpp DEPENDPATH += . INCLUDEPATH += . INCLUDEPATH += c:/R-2.15.1/include INCLUDEPATH += c:/R-2.15.1/library/Rcpp/include INCLUDEPATH += c:/R-2.15.1/library/RInside/include LIBS += -L c:/R-2.15.1/bin/i386 -lR LIBS += -L c:/R-2.15.1/library/Rcpp/libs/i386 -lRcpp LIBS += -L c:/R-2.15.1/library/RInside/libs/i386 -lRInside 该计划编制如下: 注意最后有一个警告. 系统路径如下: Qt的路径: 请指出我遗漏的一点. 更新: 现在我已经更新了qmake.conf,如下所示: # # qmake configuration for win32-g++ # # Written for MinGW # MAKEFILE_GENERATOR = MINGW 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 QT_LARGEFILE_SUPPORT QMAKE_COMPILER_DEFINES += __GNUC__ WIN32 QMAKE_EXT_OBJ = .o QMAKE_EXT_RES = _res.o QMAKE_CC = gcc QMAKE_LEX = flex QMAKE_LEXFLAGS = QMAKE_YACC = byacc QMAKE_YACCFLAGS = -d QMAKE_CFLAGS = QMAKE_CFLAGS_DEPS = -M QMAKE_CFLAGS_WARN_ON = -Wall QMAKE_CFLAGS_WARN_OFF = -w QMAKE_CFLAGS_RELEASE = -O2 QMAKE_CFLAGS_DEBUG = -g QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses QMAKE_CXX = 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 = 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 = g++ QMAKE_LINK_C = gcc QMAKE_LFLAGS = -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc 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,windows QMAKE_LFLAGS_DLL = -shared QMAKE_LINK_OBJECT_MAX = 10 QMAKE_LINK_OBJECT_SCRIPT= object_script QMAKE_LIBS = QMAKE_LIBS_CORE = -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lws2_32 QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lws2_32 -lole32 -luuid -luser32 -ladvapi32 QMAKE_LIBS_NETWORK = -lws2_32 QMAKE_LIBS_OPENGL = -lopengl32 -lglu32 -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_COPY = cp QMAKE_COPY_DIR = xcopy /s /q /y /i QMAKE_MOVE = mv QMAKE_DEL_FILE = rm QMAKE_MKDIR = mkdir 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 = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc.exe QMAKE_UIC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic.exe QMAKE_IDC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc.exe QMAKE_IDL = midl QMAKE_LIB = ar -ru QMAKE_RC = windres QMAKE_ZIP = zip -r -9 QMAKE_STRIP = strip QMAKE_STRIPFLAGS_LIB += --strip-unneeded load(qt_config) 错误现在已更改为: UPDATE 我刚刚删除了Wl和-enable-std之间的空格..以上错误消失了:
如
this merge request所示,qmake.conf文件中存在一个错误,该错误配置了每次使用qmake的默认配置时使用的变量.
选项-enable-stdcall-fixup需要以-Wl为前缀,以便通过mingw32-g正确解析,因为-e …将在解析时被拆分为-e ….此前缀仅表示“不要将以下内容解析为-e nable-stdcall-fixup,而是解析为-enable-stdcall-fixup”. qmake.conf文件包含-Wl但是在错误的行中,因此合并请求表示
补丁将-Wl向上移动一行.您可以在qmake.conf文件上手动执行此操作,该文件应位于mkspecs / win32-g /qmake.conf下的Qt安装下.更改以下行: QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-runtime-pseudo-reloc QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads -Wl 进入这个: QMAKE_LFLAGS = -Wl,-enable-runtime-pseudo-reloc QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads 请注意,-Wl和-enable-stdcall-fixup之间不应有空格.它应该作为一个单独的参数传递给g,以实现我们想要的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在Windows中对两个文件执行差异时,获取两个文件中的差异行数
- 将数据传递到Windows中的电子
- Windows远程管理套件,不依赖于Active Directory,域等
- windows – 如何确定Win7被激活的密钥类型(零售或批量许可证
- windows – 如何使用CMake获取多配置生成器和基于makefile的
- Windows – 无声安装MSI
- windows-installer – Windows安装程序自定义操作错误1631
- windows-phone-7 – 如何使应用程序出现在wp 7/8的游戏(xbo
- windows – 如何用cmake指定带有空格的路径?
- win10下,MySQL5.5.61重置密码
- windows – BATCH |将多个变量回显到文件
- windows系统编辑过的脚本文件,在linxu上执行报错
- windows – 通过PowerShell自动化WSUS
- Windows Azure可以在我自己的硬件上安装吗?
- 在Windows上远程连接Linux图形界面
- .net – Windows Phone 7 WPF的Pivot控件?
- windows 平台使用 VS2017 编译openssl源码
- 有关使用Microsoft OLE DB Provider for Jet 4.0
- character-encoding – Go:使用windows-1252编码
- 更改Windows IP 地址的bat脚本