Tried using PROS in Vexcode

I have included all of the files in PROS into vexcode and no errors are appearing. However, when I build I get this issue.

[info]: Saving Project …

[info]: Project saved!

unix build for platform vexv5

LINK build/test12.elf

build/src/main.o: In function `main’:

main.cpp:(.text.main+0x18): undefined reference to `pros::Motor::move(long) const’

build/src/robot-config.o: In function `_GLOBAL__sub_I_robot_config.cpp’:

robot-config.cpp:(.text._GLOBAL__sub_I_robot_config.cpp+0x74): undefined reference to `pros::Motor::Motor(unsigned char, bool)’

make: *** [build/test12.elf] Error 1

[error]: make process closed with exit code : 2

Any Idea how to fix this or know the proper way to use the PROS library in Vexcode?

PROS and VexCode are completely different programming environments for V5. While both use C++, the libraries used to interface with and command the hardware are completely different.
If you have code written for PROS, which it appears you do, you need to put this into the pros editor and compiler. This is not the same as VexCode, which only accepts its own ‘flavour’ of code. You can view instructions for downloading and getting started with PROS from here: download pros here and view the first time user’s guide here
If you’re a beginner team, there’s not really any need for you to use PROS over VexCode. PROS is geared towards slightly more advanced teams with more programming experience, so is a bit trickier to set up and use. I might be reading the error message wrong but it looks like you’re on mac. If so, then installing PROS might be a bit more of a pain because you need to use brew.
There are definitely advantages to PROS like okapi and less annoying references to unit objects, so it might be worth it - entirely up to you.
If you’re dead-set on switching to PROS then follow the instructions on those links I sent, otherwise stick with what works.


I agree with this, also worth mentioning that you don’t NEED to put it in the PROS editor as long as you compile with the PROS compiler.

1 Like

Yeah I personally use Visual Studio Code as my PROS editor with keyboard shortcuts to compile and upload through the PROS CLI. The PROS editor is just Atom with a preinstalled plugin (that can just be installed in normal Atom). I’m not a huge fan of Atom, but it’s easier to get started with since VSCode takes some additional setup.

1 Like

Can I ask why you want to use PROS in Vexcode?

Is it an attempt to use PROS in a more familiar environment? If that is the case, there is a large community behind PROS that is willing to help you get started in with one of the officially supported methods. Unfortunately, Vexcode integration is not one of them. As others have mentioned, the correct way to use PROS without the dedicated editor is with the PROS command line interface (cli). As long as you run the commands in the same directory as a PROS project, you will have the full functionality without being tied to one editor. Most people tend to switch to VSCode (which Vexcode is actually built on). You can see how to setup VSCode with PROS in this thread.

If it helps, here is some clarification from earlier posts. PROS does not have its own compiler, instead there is a PROS toolchain that bundles all the required software to make PROS work. The specific compiler that the PROS toolchain uses is the gcc-arm-none-eabi cross compiler. A cross compiler allows a host computer to compile for a target device (V5 brain) which has a different architecture. This cross compiler is popular choice for ARM based embedded systems beyond just vex. Next, noting that you are using a Mac, I would highly recommend using the Homebrew installation as it makes for a seamless installation. Brew also provides tools to check the status of your packages after installation. If you chose to manually install PROS, then you would be responsible for checking that everything was installed properly and its harder for someone else to assist you. I personally use brew for PROS and most of the software on my mac, and I found it very reliable.


Everything everyone’s said is true, though I think not having to use the pros atom editor is besides the point - my take on what OP said is that they were unaware that pros is separate to VexCode (rather than a library within it), so they’re probably a beginner that won’t bother using another editor (vscode) or manually compile it with gcc-arm-none-eabi.
Though for the sake of complete documentation that information is definitely useful.