For a reason I don’t want to disclose right now, I need to know which libraries libv5rt.a depends on. I know that the makefile links it to libm, libc, libgcc, libstdc++, and libsupc++, but I need to know exactly which of these is needed if using v5rt with just C++. Thanks.
Are you trying to reverse engineer VEXcode…
Nope. But what I’m working on is something cool that I’ll release once its done.
You’re going to need all of them if you want to use all the features of C++, no way around it. You could probably get away with just programming in C w/o standard library features, like how bv5 works, though that isn’t just libv5rt.a either, new functions are added on top of the vex functions.
I believe if you’re using libv5rt.a
, it’s actually going to depend on a whopping 0 librarys. That’s because a .a
file is an ar
archive (linux guys come up with genious names) containing a list of all exported symbols, then a load of pre-compiled binaries (“objects”) that your link against. By nature of already being compiled, you shouldn’t then need to pull in any extra stdlib libraries to link against them. That said, one that will definitely be needed for any hope of using any functions in them would be stdint
because otherwise you’re going to struggle to actually pass parameters of the right type to the function, and that lowkey makes them unusable. To be able to define most of the functions, you’re going to need stdint
, stdbool
and stdarg
at a minimum (although you could probably do some bodges with regards to stdint).
When doing a C++ build, if what you’re doing is at the point where you’re wonderinf if you need to pull in libstdc++, you should probably write your own C++ wrappers ontop of the C-based SDK instead of trying to make the VEX wrappers work, because it’s going to end up causing you far more grief than really you want.
My linker is telling me it does have dependencies. Probably all of those are included in gcc-arm-embedded.
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.