70,024
社区成员




工具是VC2010,默认编译的都是32位,不清楚能否编译出64位程序,以及以命令行该如何编译出?记得/machine的选项都试了,好像都不可行
私信只能发三句,我在这里回你。
setvbuf的第二个参数,是给流(stdin/stdout/文件等)的缓冲区(我们叫它buffer)。因为是测试stdin,所以用scanf函数,它的第二个参数是被读入变量的地址(字符数组,因为是数组,直接,写字符数组名,我们叫他string)。这两个量,是两个独立的内存,不应该,把string传入到setvbuf做它的第二个参数。如果,把string作为参数传入到setvbuf中,那么就会出现,你当时提出的问题。
你要是还感兴趣,可以看一下,我这个回答。
关于setvbuf(stdin,......)的问题? - 觉渺的回答 - 知乎
https://www.zhihu.com/question/54681443/answer/2378633586
仅供参考:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64_arm\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64_x86\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_arm\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x86\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x86\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x86\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x64\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx86\x86\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30037\bin\Hostx64\x64\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30037\bin\Hostx64\x86\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30037\bin\Hostx86\x64\cl.exe
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30037\bin\Hostx86\x86\cl.exe
VC++2005就支持64位了,否则xp和vista的64位版本是怎么编译出来的呢
VC++的设计是不同版本(x86、x64、ARM、ARM64等等)的编译器独立存在,不是gcc那种一个编译器生成不同平台可执行文件的设计,安装好之后,只需要在命令行运行vcvars32.bat、vcvars64.bat... 就可以使用对应的命令行工具
VC2010是不是不支持编译生成64位程序?
如果是VS2015,参考下面:
生成Release|x64
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" d:\test\test.sln /rebuild "Release|x64" /out d:\test\c.log
或生成Debug|x64
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" d:\test\test.sln /rebuild "Debug|x64" /out d:\test\c.log