【发布时间】:2011-04-01 16:01:22
【问题描述】:
我的制作文件:
all: hPif clean
hPif : src/main.o src/fann_utils.o src/hashes.o src/Config.o
g++ src/Config.o src/main.o src/fann_utils.o src/hashes.o -lfann -L/usr/local/lib -o hPif
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 src/Config.h src/hashes.h
g++ -c src/fann_utils.cpp
main.o: src/main.cpp src/Config.h src/main.h src/hashes.h
g++ -c src/main.cpp
clean:
rm -rf src/*o
rm -rf *o
我得到的错误,在制作时:
g++ src/Config.o src/main.o src/fann_utils.o src/hashes.o -lfann -L/usr/local/lib -o hPif
Undefined symbols:
"Config::NO_FILE_TRAIN", referenced from:
_main in main.o
_main in main.o
"Config::LEARNING_RATE", referenced from:
display_help() in main.o
train_network_no_file() in main.o
train_network() in main.o
_main in main.o
.
.
.
这里有代码布局的详细信息:C++: I have this config class that I want to use between all my CPP files, how do I initialize it?
编辑:
这里有问题的代码:http://pastebin.com/PDmHaDaC
【问题讨论】:
-
顺序与 gcc 链接相关选项有关。例如,请参阅 stackoverflow.com/q/1095298/2509 或 stackoverflow.com/q/2632505/2509。
-
另外,就调试
make而言,您可以随时在命令行上尝试有问题的命令,看看是make还是您的命令导致了问题。 -
@dmckee,我不明白,我的订单有什么问题?
-
嗯,对我有用。我做了一个小规模的实验,Config.o 和 main.o 的顺序在链接线上并不重要。
-
@quamrana,我会发布一个变量使用的链接。