8
在Ubuntu中的32位上交叉编译64位程序时缺少“ bits / c ++ config.h”
我正在运行32位版本的Ubuntu 10.10,并尝试交叉编译为64位目标。根据我的研究,我已经安装了g ++-multilib软件包。 该程序是一个非常简单的问候世界: #include <iostream> int main( int argc, char** argv ) { std::cout << "hello world" << std::endl; return 0; } 编译: g++ -m64 main.cpp 错误: In file included from main.cpp:1: /usr/include/c++/4.4/iostream:39: fatal error: bits/c++config.h: No such file or directory compilation terminated. 我找到了一个c++config.h文件,但它们位于中的“没有” 中的i486-linux-gnu和i686-linux-gnu目录下。/usr/include/c++/4.4/c++config.h/usr/include/c++/bits 关于我所缺少的任何想法?不带-m64标志的编译工作正常(a.out已创建并正确运行)。 编辑由于@nightcracker的提示,我对32位和64位系统的include结构进行了更多研究。我在下面添加了一个可以暂时“解决”问题的答案,但是我认为它将在下次更新时中断。基本上,我缺少一个名为的目录/usr/include/c++/4.4/i686-linux-gnu/64,该目录应包含一个名为的子目录bits,该子目录具有丢失的包含文件。知道应该由哪个软件包来处理吗?