欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

Mingw64編譯wxWidgets 3.0.2常見錯(cuò)誤分析

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語言|點(diǎn)擊: 次

使用Mingw64編譯wxWidgets3.0.2,首先得下載wxMSW-Setup-3.0.2.exe(https://sourceforge.net/projects/wxwindows/files/3.0.2/wxMSW-Setup-3.0.2.exe,然后按照如下步驟編譯(假設(shè)要編譯一個(gè)Unicode共享庫版的wxWidgets):

cd X:\wxWidgets-3.0.2\build\msw

    make -f makefile.gcc SHARED=1 UNICODE=1

  然而編譯到一半,從C代碼變?yōu)镃++代碼時(shí),就會(huì)產(chǎn)生如下錯(cuò)誤(有許多類似錯(cuò)誤,只選取一處):

In file included from e:\mingwd\mingw\include\c++\5.2.0\type_traits:35:0,
                   from ..\..\include/wx/strvararg.h:25,
                   from ..\..\include/wx/string.h:46,
                   from ..\..\include/wx/any.h:19,
                   from ../../src/common/any.cpp:18:
e:\mingwd\mingw\include\c++\5.2.0\bits\c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

  既然只是c++11支持沒有打開的問題,只要改一下CXXFLAGS即可,于是乎,按如下命令重新編譯。

    make -f makefile.gcc CXXFLAGS="-std=c++11" SHARED=1 UNICODE=1 clean

    make -f makefile.gcc CXXFLAGS="-std=c++11" SHARED=1 UNICODE=1

  這次編譯完了所有中間件,但是到鏈接時(shí)候又出了問題:

    E:\wxWidgets-3.0.2\lib\gcc_lib64/libwxmsw30ud.a(monolib_filename.o): In function `wxChmod(wxString const&, unsigned short)':
    E:\wxWidgets-3.0.2\build\msw/../../include/wx/filefn.h:513: undefined reference to `wxMSLU__wchmod(wchar_t const*, int)'
    E:\wxWidgets-3.0.2\lib\gcc_lib64/libwxmsw30ud.a(monolib_filename.o): In function `wxOpen(wxString const&, int, unsigned short)':
    E:\wxWidgets-3.0.2\build\msw/../../include/wx/filefn.h:515: undefined reference to `wxMSLU__wopen(wchar_t const*, int, int)'
    E:\wxWidgets-3.0.2\lib\gcc_lib64/libwxmsw30ud.a(monolib_file.o): In function `wxRemove(wxString const&)':
    E:\wxWidgets-3.0.2\build\msw/../../include/wx/wxcrt.h:758: undefined reference to `wxMSLU__wremove(wchar_t const*)'
    E:\wxWidgets-3.0.2\lib\gcc_lib64/libwxmsw30ud.a(monolib_file.o): In function `wxAccess(wxString const&, unsigned short)':
......

  這實(shí)在是令我百思不得其解了,翻遍了docs文件夾的每個(gè)角落,終于在install.txt中找到了答案,里面有這么一句話:

C++11 note: If you want to compile wxWidgets in C++11 mode, you currently have
            to use -std=gnu++11 switch as -std=c++11 disables some extensions
            that wxWidgets relies on. I.e. please use CXXFLAGS="-std=gnu++11".

  說的很清楚,不能用”std=c++11"進(jìn)行編譯,這會(huì)導(dǎo)致一些wxWidgets依賴的extensions(擴(kuò)展名?)被屏蔽的問題。然后用以下命令重新編譯,就成功了。

    make -f makefile.gcc CXXFLAGS="-std=gnu++11" SHARED=1 UNICODE=1 clean

    make -f makefile.gcc CXXFLAGS="-std=gnu++11" SHARED=1 UNICODE=1

后記

  上面說到關(guān)于extensions,這里的意思應(yīng)該是擴(kuò)展,即gnu的g++(gcc)提供給c/c++代碼除c++標(biāo)準(zhǔn)以外的支持。如果這些支持沒有被啟用,自然會(huì)導(dǎo)致上面像wxWidgets的庫編譯失敗,不過這么依賴語言外的額外實(shí)現(xiàn)也不見得是件好事吧。

上一篇:C++中四種加密算法之DES源代碼

欄    目:C語言

下一篇:C語言 文件操作解析詳解及實(shí)例代碼

本文標(biāo)題:Mingw64編譯wxWidgets 3.0.2常見錯(cuò)誤分析

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1968.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有