Windows下qemu和cmake的配置
主要用于自用,所以步骤比较简略,描述简单过程和遇上的问题怎么解决的。
qemu的配置
直接去qemu官网下载 qemu下载地址,然后将安装完之后直接在终端中输入qemu-system-x86_64
,就会蹦出qemu的页面,关于qemu的指令会放在另外一篇博客来整理。
cmake的配置
下载地址:cmake下载地址
cmake安装过程中直接选择加入环境变量中,就不用再去环境变量中配置,然后终端中直接输入cmake
查看是否安装成功,成功安装后的输出如下:
vscode中的使用
关于extensions
vscode中的配置不多说,要装的extensions大概有:c/c++,cmake tools,cmake,Hex Editor,LinkerScript,Material Icon Theme,x86 and x86_64 Assembly这些。等cmake tools装好后,直接在下方的build处选择相应的编译器。
关于打开断点
关于断点设置,vscode打开设置,在settings里面搜索break,然后把下面这项打上勾即可:
在运行程序的时候遇上的问题
build的一个报错
我的电脑上有好几个gcc编译器,在运行的时候我一开始在cmakelist中使用的是x86_64-w64-mingw32-
这个,运行的时候先是出现报错:
CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
解决方法参考:关于上述报错的解决参考
找到mingw\bin
下的mingw32-make.exe
拷贝一份并重命名为make.exe
:
mingw的一个报错
解决了上面那个后,出现另一个报错:
'x86_64-w64-mingw32-ld' 不是内部或外部命令,也不是可运行的程序
参考:找不到ld的原因,我下的mingw的版本里面没有mingw64/lib/libadvapi32.a
,下载了这个加入lib文件夹下就没有这个报错了。
我找到的一个下载地址:libadvapi32.a有效下载地址
换工具链
之后发现用这个编译x86系统相关的这个程序还是不得行,改成了使用x86_64-elf-tools-windows这个工具链,成功运行。
下载地址:x86_64-elf-tools-windows.zip下载地址
老样子需要配置全局变量path,我直接下载后在c盘解压缩,然后把bin文件路径加到path中。然后在终端测试:输入x86_64-elf-gcc --version
,显示如下:
奇怪的是vscode中的scan for kits
没有找到我加的这个工具链,直接粗暴地在c_cpp_properties.json
中加编译器地址,然后就能找到了。。。
c_cpp_properties.json
的打开方式:ctrl+shift+P
打开Command Palette,运行C/C++: Edit configurations
生成c_cpp_properties.json:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"C:/x86_64-elf-tools-windows/bin/"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "${default}",
"configurationProvider": "ms-vscode.cmake-tools",
"compilerPath": "C:/x86_64-elf-tools-windows/bin/x86_64-elf-gcc.exe"
}
],
"version": 4
}
配置完毕,下一篇讲讲qemu和gdb调试器的使用。