2013-10-28 17 views
7

Tôi có trình biên dịch chéo trong thư mục chính trên Ubuntu 13.10 (64-bit). Tôi đã tải về nó here ở dưới cùng của trang, nơi nó nói "Prebuilt Toolchains". Khi tôi cố gắng biên dịch một cái gì đó, nó mang lại cho tôi điều này:cc1: lỗi khi tải thư viện dùng chung: libmpc.so.2: không thể mở tệp đối tượng được chia sẻ: Không có tệp hoặc thư mục như vậy

cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory 

Sau khi phát hiện một chút, tôi tìm thấy this. Tôi đã thử các lệnh mà tác giả đã viết để vào; nhưng họ sẽ không giúp tôi, kể từ khi tôi gặp vấn đề này với một trình biên dịch chéo từ từ điển nhà, không phải là trình biên dịch hệ thống. Có ai giúp được không?

EDIT: Dưới đây là file tôi đang cố gắng để cross-compile:

void print(char *message, int line,int ch){ 
    char *vm=(char *)0xb8000; 
    int i=(line*80*2); 
    i=i+(ch*2); 
    while(*message!=0){ 
    if (*message=='\n'){line++; 
    i=(line*80*2);} 
    else {vm[i]=*message; 
    i++; 
    vm[i]=0x07; 
    i++;} *message++;}} 

void kernel_main(){ 
print("Hello!\nHow do you like my kernel?",0,0);} 

Tôi cũng có một file lắp ráp viết bằng AT & T cú pháp mà các cuộc gọi kernel_main().

+1

Bạn có thể vui lòng cung cấp chi tiết hơn? Trình biên dịch chéo nào, bạn đang sử dụng lệnh gì, hệ thống nào bạn đang sử dụng, v.v. – Josh

+0

Tôi vừa tải xuống trình biên dịch chéo khác từ cùng một chỗ, nó cũng giống như vậy. Tôi có nên thử Fedora thay vì Ubuntu không? Hay chỉ là chúng ta mệt mỏi? –

+0

Tôi vừa thử nó trên Fedora và nó cũng không hoạt động. Bất cứ ai có thể thử trình biên dịch chéo i386-elf từ os-dev.org trên phần cứng của họ? Có lẽ nó chỉ là máy tính của tôi có vấn đề này vì một lý do nào đó. –

Trả lời

8

lỗi của tôi đã biến mất sau khi tôi đã ban hành các lệnh sau:

export LD_LIBRARY_PATH="/usr/local/lib" 
sudo ldconfig 

ldconfig là sự kỳ diệu.

+0

libstdC++. So.6.0.20-gdb.py không phải là một tập tin ELF - nó có các byte ma thuật sai lúc bắt đầu. –

1

Bạn có thể tìm libmpc.so.3 trong/usr/lib hoặc/usr/lib64 không? Nếu bạn tìm thấy nó hoặc cùng một thứ, bạn cần thay thế nó bằng tệp libmpc.so.2. Tệp đó có thể tìm thấy trong phiên bản Linux khác nhau thấp hơn.

+1

Trong trường hợp của tôi, tôi chỉ liên kết libmpc.so.2 với libmpc.so.3 và biên dịch lại và dường như cũng hoạt động. :-) – tudor

0

phiên bản 2 của libmpc (ví dụ: libmpc.2.dynlib) được tạo từ phiên bản 0.7 - 0.9 của nguồn (tìm bản lưu trữ tải xuống tại www.multiprecision.org). Các phiên bản cũ hơn 0.9 dường như không tương thích với các phiên bản mới hơn của GMP vì vậy tôi sẽ thử xây dựng phiên bản đầu tiên đó. Tôi đã có thể xây dựng và sử dụng 0.9 trên hệ thống OSX El Capitan của tôi sau khi cài đặt gcc 4.8, GMP, và mpfr:

brew tap homebrew/versions 
brew install gcc48 
brew install gmp 
brew install mpfr 

Sau đó, trong mpc-0.9 dirctory:

./configure --with-gmp=/usr/local/Cellar/gmp/6.1.0 --with-mpfr=/usr/local/Cellar/mpfr/3.1.3 
make 
sudo make install 
0

tôi giải quyết cc1: error while loading shared libraries: libmpc.so.2 như sau:

Install libmpc3 qua repo và làm cho liên kết tượng trưng (phương pháp bẩn, nhưng làm việc):

sudo apt-get install libmpc* 

hoặc (nếu toolchain cho i386):

sudo apt-get install libmpc*:i386 

trong /usr/lib/i386-linux-gnu cho i386 hoặc amd64 /usr/lib/x86_64-linux-gnu cho:

sudo ln -s libmpc.so.3.0.0 libmpc.so.2 
Các vấn đề liên quan

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