I am trying to use boost (v 1.77.0) in the vxWorks kernel space (not RPC).
The vxWorks version is 6.9. The compiler is ccarm
:
ccarm.exe (Wind River VxWorks G++ 4.3-386) 4.3.3
Initially the error was that the file <cstdio>
that is included by vxworks.hpp
is not found. I added the path $(WIND_BASE)/target/usr/h
to the list of include paths (-I
) which actually includes the file, but that caused compilation errors that have to do with symbol redefinition. The first symbol to fail was fpos_t
which is defined in both stdio.h
and as a macro in vxTypes.h
(originally from vxTypesBase.h
).
I looked at this question and this answer that was linked by the question, but neither succeeded in fixing the issue. This question didn't provide useful information for this issue either.
Adding the compilation flag -std=c++0x
didn't solve the issue either (nor did I expect it to, as the root cause was a missing file).
It would appear from here that some boost libraries can be built into the kernel image, but all that I really need is a small subset of header-only libraries. I don't want to link the libraries into the kernel image itself.
- Has anyone successfully used boost in the vxWorks kernel space?
- Is there a specific boost build that I should be doing in order to get the correct macros defined?