首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Ubuntu中交叉编译32位上的64位程序时,缺少包含"bits/c++config.h“

在Ubuntu中交叉编译32位上的64位程序时,缺少包含"bits/c++config.h“
EN

Stack Overflow用户
提问于 2011-01-10 10:20:44
回答 9查看 201.9K关注 0票数 209

我正在运行Ubuntu10.10的32位版本,并试图交叉编译到64位目标。基于我的研究,我已经安装了g++-multilib包。

该程序是一个非常简单的hello world:

代码语言:javascript
复制
#include <iostream>

int main( int argc, char** argv )
{
  std::cout << "hello world" << std::endl;
  return 0;
}

编译:

代码语言:javascript
复制
g++ -m64 main.cpp

错误:

代码语言:javascript
复制
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文件,但它们位于/usr/include/c++/4.4/中的i486-linux-gnui686-linux-gnu目录下,/usr/include/c++/bits中没有c++config.h

知道我错过了什么吗?在不使用-m64标志的情况下编译可以正常工作(a.out可以正确创建和运行)。

编辑感谢@nightcracker的提示,我对32位和64位系统上的include结构做了更多的研究。我已经在下面添加了一个answer,它暂时“修复”了这个问题,但我认为它会在下一次更新时崩溃。基本上,我缺少一个名为/usr/include/c++/4.4/i686-linux-gnu/64的目录,该目录应该包含一个名为bits的子目录,该子目录包含缺少的包含文件。你知道应该用什么包来解决这个问题吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4643197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档