Кросс-компиляция проекта C ++, Перемещения в стандартном ELF (EM: 3)

Я уже некоторое время работаю над проектом C ++, но хотел бы перенести его на мой процессор руки. У меня уже есть все мои инструменты кросс-компиляции (я использую CodeSourcery), и я подумал, что могу просто изменить свой make-файл, чтобы он указывал на этот компилятор. Он отлично компилируется с использованием g ++ по умолчанию, но при попытке make, указывающей на кросс-компилятор, я получаю ошибки перемещения:

/ home / oryan / CodeSourcery / bin /../ lib / gcc / arm-none-linux-gnueabi /4.5.2/../../../../arm-none-linux-gnueabi/bin/ld: ServerSocket.o: перемещения в стандартном ELF (EM: 3)
ServerSocket.o: не удалось прочитать символы: файл в неправильном формате
collect2: ld вернул 1 статус выхода
make: *** [simple_server] Ошибка 1

Похоже, у меня не настроена правильная ссылка или она указывает не на то место. Я не так хорошо знаком с make-файлами и, вероятно, упускаю что-то очевидное. Makefile, который я использовал, взят из http://tldp.org/LDP/LG/issue74/tougher.html с удаленной клиентской стороной:

# Makefile for the socket programming example
#

simple_server_objects = ServerSocket.o Socket.o simple_server_main.o

all : simple_server

simple_server: $(simple_server_objects)
         /home/matt/CodeSourcery/bin/arm-none-linux-gnueabi-g++ -o simple_server $(simple_server_objects)


Socket: Socket.cpp
ServerSocket: ServerSocket.cpp
simple_server_main: simple_server_main.cpp

clean:
        rm -f *.o simple_server

Сейчас я вручную компилирую каждый файл и он отлично работает, но я хотел бы расширить свое понимание здесь.

Спасибо!

8
задан Rup 17 November 2011 в 14:52
поделиться