我試圖移植Linux庫以在VxWorks上運行。我已經成功構建了binutils和gcc,目標爲i486-wrs-vxworks,我可以成功構建一個簡單的C程序。但是,當我嘗試編譯C++時,事情就會中斷。針對VxWorks的GCC交叉編譯器無法編譯C++
我有一個簡單的Hello World程序:
#include <string>
#include <iostream>
int main()
{
std::string s = "Hello World";
std::cout << s << std::endl;
return 0;
}
建造它,我呼籲:
i486-wrs-vxworks-gcc -I/home/kyle/vxworks-6.9/target/usr/h -I/home/kyle/vxworks-6.9/target/usr/h/c++ hello.cpp
這總是失敗,與消息:
In file included from /home/kyle/vxworks-6.9/target/usr/h/c++/cerrno:4:0,
from /home/kyle/vxworks-6.9/target/usr/h/c++/xlocnum:4,
from /home/kyle/vxworks-6.9/target/usr/h/c++/ios:4,
from /home/kyle/vxworks-6.9/target/usr/h/c++/ostream:4,
from /home/kyle/vxworks-6.9/target/usr/h/c++/istream:4,
from /home/kyle/vxworks-6.9/target/usr/h/c++/string:4,
from hello.cpp:1:
/usr/local/lib/gcc/i486-wrs-vxworks/4.6.4/../../../../i486-wrs-vxworks/include/yvals.h:4:24: fatal error: yvals.h: No such file or directory
如果我去看裏面/usr/local/i486-wrs-vxworks/include/yvals.h
,這是我看到:
/* yvals.h values header for conforming compilers on various systems */
#if (defined(__cplusplus) && defined(__GNUC__))
/* GCC C++ has it's own yvals.h */
#include_next <yvals.h>
#else /* __cplusplus && __GNUC__ */
#ifndef _YVALS
#define _YVALS
#ifdef _NO_WINDRIVER_MODIFICATIONS
#include <stdarg.h>
#endif
...
似乎還有另一個yvals.h
需要包括,但我找不到它在任何地方。我是否正確構建gcc失敗了,還是有辦法解決這個問題?
你試過'i486-wrs-vxworks-g ++'嗎? –
@MatsPetersson是的,它給出了同樣的錯誤。 – kylem
有另一種包括'在/ usr /本地/ 1486-WRS-的VxWorks內yvals.h'的'/包括/ yvals.h' - 通常這些系統文件做包括後來一個又一個......不幸的是,我不t知道你的問題的答案,所以我只能沿着我調查的路徑引導你。 –