C ++: Makefile: объектные файлы не компилируются?make затем говорит, что объекты не найдены - PullRequest
0 голосов
/ 25 апреля 2011

Итак, client.o и server.o не компилируются ... но файл make не содержит ошибок ...

Я проверил каталог, в котором находится весь код, и вложенные папки. но клиента и сервера .o просто нет ... = \

вот мой make-файл:

main_objects = src/main.o src/fann_utils.o src/Config.o

network_objects = src/neural_network_basic.o
hash_objects = src/hashes.o src/hashes/Murmur.o 
cloud_objects = src/cloud/client.o src/cloud/server.o

all_objects = $(main_objects) $(hash_objects) $(network_objects) $(cloud_objects)

all: hPif clean

hPif : $(all_objects)
    g++ -o hPif $(all_objects) -lfann -L/usr/local/lib 

src/cloud/client.o : src/cloud/chat_client.cpp src/cloud/chat_message.hpp
    g++ -c src/cloud/chat_client.cpp 

src/cloud/server.o : src/cloud/chat_server.cpp src/cloud/chat_message.hpp src/cloud/chat_server.h
    g++ -c src/cloud/chat_server.cpp 

neural_network_basic.o : src/neural_network_basic.cpp src/neural_network_basic.h
    g++ -c src/neural_network_basic.cpp

hashes/Murmur.o : src/hashes/Murmur.cpp src/hashes/Murmur.h
    g++ -c src/hashes/Murmur.cpp

Config.o : src/Config.cpp src/Config.h
    g++ -c src/Config.cpp

hashes.o : src/hashes.cpp src/hashes.h
    g++ -c src/hashes.cpp

fann_utils.o: src/fann_utils.cpp fann_utils.h
    g++ -c src/fann_utils.cpp 

main.o: src/main.cpp src/main.h 
    g++ -c src/main.cpp

clean: 
    rm -rf src/cloud/*.o
    rm -rf src/hashes/*.o
    rm -rf src/*.o
    rm -rf *.o

Вывод на консоль выглядит следующим образом:

g++    -c -o src/main.o src/main.cpp
g++    -c -o src/fann_utils.o src/fann_utils.cpp
g++    -c -o src/Config.o src/Config.cpp
g++    -c -o src/hashes.o src/hashes.cpp
g++    -c -o src/hashes/Murmur.o src/hashes/Murmur.cpp
g++    -c -o src/neural_network_basic.o src/neural_network_basic.cpp
g++ -c src/cloud/chat_client.cpp 
g++ -c src/cloud/chat_server.cpp 
g++ -o hPif src/main.o src/fann_utils.o src/Config.o src/hashes.o src/hashes/Murmur.o  src/neural_network_basic.o src/cloud/client.o src/cloud/server.o -lfann -L/usr/local/lib 
i686-apple-darwin10-g++-4.2.1: src/cloud/client.o: No such file or directory
i686-apple-darwin10-g++-4.2.1: src/cloud/server.o: No such file or directory
make: *** [hPif] Error 1

1 Ответ

3 голосов
/ 25 апреля 2011

g++ -c src/cloud/chat_client.cpp создаст объектный файл с именем chat_client.o, а не client.o. Либо добавьте -o $@ к правилу, чтобы создать объектный файл с тем же именем, что и целевой объект, либо переименуйте файл в chat_client.o везде, где он упоминается в make-файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...