2010-05-04 47 views
5

Tôi có thể cài đặt phiên bản cũ hơn của gcc/g ++ (4.1.3) trên Ubuntu mới nhất (đi kèm với 4.4.3) và sử dụng nó để biên dịch một .so nên chạy trên CentOS? Bản nhị phân được biên dịch bằng phiên bản gcc của Ubuntu không tải được trên CentOS vì thiếu nhập (GLIB_2_11, ...). Tôi cần C++ (bao gồm cả trường hợp ngoại lệ), vì vậy tôi không thể chỉ liên kết tĩnh chống lại glibc, mà tôi đã thử.Biên dịch CentOS trên Ubuntu

Tôi có thể cài đặt gcc cũ hơn mà không xóa gcc cũ hơn không? Làm thế nào để tôi đi về các libs theo yêu cầu của gcc cũ hơn?

Tôi hiện đang phát triển mã trong CentOS, nhưng thật khó để sử dụng. Tôi thực sự muốn chuyển sang một máy tính để bàn Ubuntu.

+0

Có gì sai khi phát triển trên máy tính để bàn Ubuntu và xây dựng các tệp nhị phân cuối cùng của bạn (và tích hợp không thường xuyên) trên máy CentOS (thậm chí có thể nằm trong máy ảo). –

+0

Tôi đã sử dụng máy ảo. Máy ảo CentOS hiện khởi động trong 5 phút, và một máy ảo đã đủ cho một máy tính xách tay RAM 4GB. – Meh

+0

Thử tắt SELinux, nếu bạn chưa bật. Tôi đã thấy rằng gây ra chậm quá mức trong máy ảo. –

Trả lời

5

g ++ - 4.1 is available cho Ubuntu; chỉ cần chạy apt-get install g++-4.1 rồi chạy g++-4.1 thay vì g++. Tuy nhiên, chỉ đơn giản bằng cách sử dụng một trình biên dịch cũ hơn có thể không khắc phục tất cả các vấn đề thư viện của bạn.

Giống như Joachim Sauer cho biết, đặt cược tốt nhất của bạn là làm phát triển trên Ubuntu, sau đó thực hiện việc biên dịch cuối cùng trên CentOS.

Mặc dù bạn đang sử dụng C++, liên kết tĩnh vẫn sẽ là một tùy chọn. (Tuy nhiên, bạn tốt hơn nhiều khi biên dịch trên CentOS và sử dụng liên kết động.)

Chỉnh sửa: Máy ảo là cách đơn giản nhất để xây dựng trên CentOS, nhưng nếu bạn muốn tránh bộ nhớ và CPU chạy máy ảo và không quan tâm đến sự khác biệt giữa hạt nhân của Ubuntu và CentOS, sau đó bạn có thể tạo thư mục con chứa hệ thống tệp CentOS hoặc Fedora và chroot làm điều đó để thực hiện các bản dựng của bạn. This blog posting có chi tiết.

+1

Dường như liên kết tĩnh với libstdC++ trên Linux phức tạp hơn là nó có vẻ như: http://www.trilithium.com/johan/2005/06/static-libstdc/ – Meh

Các vấn đề liên quan