Я уже некоторое время работаю над проектом 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
Сейчас я вручную компилирую каждый файл и он отлично работает, но я хотел бы расширить свое понимание здесь.
Спасибо!