MinGW64位32位问题求教

在Win7 64位系统,mingw-w64-bin-x86_64-20121103.7z安装包!
解压,环境变量path中加入bin路径!
问题1:终端输入Gcc —v结果是成功了吗???怎么显示的还是Win32???
g++ -c -w hello.cpp hello1.cpp hello.cpp
ar -x "C:\mingw64\x86_64-w64-mingw32\lib\libsetupapi.a"
ar rcs hello32.a *.o
del *.o
cmd
想分别生成一个32位的库一个64位的库!
"C:\mingw64\x86_64-w64-mingw32\lib\libsetupapi.a"这个是32位吧?
问题2:ar rcs hello32.a *.o这个命令中*.o错误了········错误为:::ar:*.o Invalid argument
但神奇的是del *.o这个成功了········
怎么回事····
问题3:我要生成64位库,是不是libsetupapi.a路径指向图片中的MinGW\lib中??但是我看里边的文件和x86_64-w64-mingw32\lib\中的文件一样,大小一样啊?
[解决办法]
问题1:
如果不加特别参数比喻-m32这种,默认应该是生成64位程序的.
Win32是Windows 32位API库的简称.64位系统下应该是Win64,只不过大家习惯了叫Win32.有的时候,它也被用来泛指所有的Windows API库.
问题2:
ar的问题的确是存在的.因为*.o是由shell展开的.Windows下的cmd没有这种功能,Windows的习惯是由应用程序自行展开.所以,想要用*.o这种参数,必须在bash之类的shell下才行.windows下可在MinSys或是Cygwin下执行即可.
或是你可以写个程序对*.o展开.然后这样用: xxx ar q abc.a *.o
如果你会写批处理,可以用for指令逐个把.o添加到.a里.
另外,还有一个比较好的解决方案,就是使用MakeFile.make会自动产生所有.o文件的列表
问题3:
生成64位库只要用默认的参数编译即可,而生成32位库则要用-m32参数编译.
mingw-w64的32位库默认会在lib32或32目录里.一般情况下,lib中是编译器默认平台的库.如果编译器默认是64位的,则通常就是64位的库.