Your assignment task is to familiarize yourself with the Raspberry Pi Desktop, or a comparable Unix/Linux system, and develop a simple graphical command executor. While this might seem complex on the surface, it’s surprisingly straightforward to do so. This should give you a good exposure to C++ classes, STL packages, Boost, and Qt, all of which will be quite handy for the group project to come!
As an example of how this will look in the end, here’a a screen shot of my own implementation. Yours will do similar things, as discussed below, but could look very different depending on how you choose to do things.
Getting An Environment Set Up
For this assignment, you will need access to a Unix-like environment of some kind. Using something like Raspberry Pi Desktop will give you something that most closely resembles doing things on an actual Raspberry Pi, but that is not required. You can use whatever distribution you wish as long as it supports the needs of this assignment. The options at your disposal, depend on your computer and operating system:
- If you are running Linux on your computer already, you’re off to a good start. You’ll just need the C++ compiler tools, Boost, and Qt 5. The compiler is quite likely installed by default, depending on your distribution, but Boost and Qt will likely need to be installed if you haven’t already done so. (Make sure to install the development packages and not just the run-times so you can create your own programs!) The packages needed depend on your distribution, but a quick Googling should tell you what you need.
- If you are running MacOS, you are also in pretty good shape, and should be able to run things from a Terminal or using XQuartz. You will need the command line compiler tools installed, which might depend on Xcode, as well as Boost and Qt 5, which will likely need to be installed. (This largely depends on the version of MacOS that you are running, and if you are using MacPorts or Homebrew for managing packages. Googling around will again tell you what you need depending on your setup.) When you are running things, you will need XQuartz running as well to handle the graphical part of things. If you have virtualization software (like VMWare or VirtualBox) with a Linux VM handy, that should work just as well too.
- If you are running Windows, it is likely best to virtualize in some fashion to get Linux up and running. Virtualization software (like VMWare or VirtualBox) could work for this, but these days, my preferred approach is to use the Windows Subsystem for Linux or WSL. You can get a number of Linux distributions running under Windows quite readily with this, assuming that your computer supports things well. Once it’s up and running, you just need the compiler tools, Boost, and Qt 5 installed and you’re ready to go. (Almost.) You could always use a live CD or live USB key to boot into Linux, but that’s often not the most convenient way of doing things. The other bit you’ll need for Windows is an X server. If you’re using the preview of WSL with graphical support, you should be good. Otherwise, you’ll need to get an X server running like VcXsrv, as discussed here.
- If you are using a Chromebook, you should be able to get Linux on it, depending on the age of your device. Again, compiler tools, Boost, and Qt 5 and you’re set.
- If none of these are an option or work for you (for example because you have a Windows computer that doesn’t support virtualization), we have a Linux server that you can connect into and use, with all the packages installed and ready to go. Simply use ssh to connect into cs3307.gaul.csd.uwo.ca with your Western credentials and you should be all set. You’ll be doing things remotely, but it should still work fine for this assignment. Note that you will need to use the -X (X11 forwarding) option when running ssh to get remote graphics working. Under Windows, this means you will still need an X server running like VcXsrv, whereas on a Mac or Linux, you can use what you have. (If you see an “untrusted X11 forwarding setup failed” warning from your Mac, you might need to make some adjustments to your ssh configuration as discussed here.)
Alright! So, now you have a Unix/Linux environment set up with the necessary compiler tools, Boost, and Qt 5. (As a bonus, this should also give you a nice dev environment for your group project too!) You have everything you need to get started with this assignment, so let’s dig into the details of what you need to be doing here.
本网站支持 Alipay WeChatPay PayPal等支付方式
E-mail: firstname.lastname@example.org 微信号:vipnxx