Tôi đang chạy phiên bản 32 bit của Ubuntu 10.10 và cố gắng biên dịch chéo sang mục tiêu 64 bit. Dựa trên nghiên cứu của tôi, tôi đã cài đặt gói g ++ - multilib.Thiếu bao gồm "bit/C++ config.h" khi biên dịch chéo chương trình 64 bit trên 32 bit trong Ubuntu
Chương trình này là một hello world rất đơn giản:
#include <iostream>
int main(int argc, char** argv)
{
std::cout << "hello world" << std::endl;
return 0;
}
Compile:
g++ -m64 main.cpp
Lỗi:
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.
Tôi đã tìm thấy một tập tin c++config.h
nhưng người đó cư trú dưới i486-linux-gnu
và i686-linux-gnu
thư mục trong /usr/include/c++/4.4/
Không có c++config.h
trong /usr/include/c++/bits
.
Bất kỳ ý tưởng nào về những gì tôi bị thiếu? Biên dịch không có cờ -m64
hoạt động tốt (a.out được tạo và chạy chính xác).
Chỉnh sửa Nhờ gợi ý từ @nightcracker, tôi đã nghiên cứu thêm một chút về cấu trúc bao gồm trên hệ thống 32 và 64 bit. Tôi đã thêm một số answer bên dưới để "khắc phục" sự cố tạm thời nhưng tôi nghĩ rằng nó sẽ phá vỡ bản cập nhật tiếp theo. Về cơ bản, tôi thiếu một thư mục có tên là /usr/include/c++/4.4/i686-linux-gnu/64
nên chứa thư mục con có tên là bits
có tệp bao gồm bị thiếu. Bất kỳ ý tưởng những gì gói nên được chăm sóc này?
Wow ... Tôi cũng gặp sự cố này. GCC 4.8 trên ARMv7-a CubieTruck (Cortex-A7) chạy Ubuntu. Điều kỳ quái (với tôi) là, câu trả lời của Anthony đã sửa nó. Dù ... – jww