我在 Ubuntu 12.04 中有一些软件包,正在借助 进行编译i586-mingw32msvc
。我的任务是在 Ubuntu 16.04 上编译相同的软件包,Ubuntu 16.04 没有i586-mingw32msvc
(根据我的发现)并且有 i686-w64-mingw32
32 位系统。
我在头文件中的基础部分遇到了编译错误(如下所示)i686-w64-mingw32
。请建议是否有任何工具链可以i686-w64-mingw32
在 ubuntu16 中进行编译。
有没有办法i686-w64-mingw32
在ubuntu 16.04下编译
usr/i686-w64-mingw32/include/winnt.h:147:25: error: expected declaration specifiers before 窶論_declspec窶・ #define DECLSPEC_IMPORT __declspec (dllimport)
^
/usr/i686-w64-mingw32/include/apisetcconv.h:43:20: note: in expansion of macro 窶魯ECLSPEC_IMPORT窶・ #define WINBASEAPI DECLSPEC_IMPORT
^
/usr/i686-w64-mingw32/include/sysinfoapi.h:37:3: note: in expansion of macro 窶聾INBASEAPI窶・ WINBASEAPI VOID WINAPI GetSystemTime (LPSYSTEMTIME lpSystemTime);
^
/usr/i686-w64-mingw32/include/winnt.h:147:25: error: expected declaration specifiers before 窶論_declspec窶・ #define DECLSPEC_IMPORT __declspec (dllimport)
^
/usr/i686-w64-mingw32/include/apisetcconv.h:43:20: note: in expansion of macro 窶魯ECLSPEC_IMPORT窶・ #define WINBASEAPI DECLSPEC_IMPORT
usr/i686-w64-mingw32/include/wingdi.h:527:32: error: declaration for parameter 窶廊PFXPT2DOT30窶・but no such parameter
typedef __LONG32 FXPT2DOT30,*LPFXPT2DOT30;
^
/usr/i686-w64-mingw32/include/wingdi.h:527:20: error: declaration for parameter 窶炉XPT2DOT30窶・but no such parameter
typedef __LONG32 FXPT2DOT30,*LPFXPT2DOT30;
^
/usr/i686-w64-mingw32/include/wingdi.h:526:33: error: declaration for parameter 窶廊PFXPT16DOT16窶・but no such parameter
typedef __LONG32 FXPT16DOT16,*LPFXPT16DOT16;
答案1
你必须手动将 Ubuntu 14.04 LTS 中的软件包安装到你当前的 16.04 LTS 系统上
cd ~/Downloads
wget http://archive.ubuntu.com/ubuntu/pool/universe/m/mingw32-binutils/mingw32-binutils_2.20-0.2ubuntu1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/m/mingw32-runtime/mingw32-runtime_3.15.2-0ubuntu1_all.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/m/mingw32/mingw32_4.2.1.dfsg-2ubuntu1_amd64.deb
sudo apt-get install ./mingw32*.deb
安装所有i586-mingw32msvc*
带前缀的命令。