0
出于某种原因,我总是遇到了创建makefile的问题。在这种情况下,我用-std = C++ 11使用了clang ++。 我有一个可执行Carbuyer.cpp依赖于一个CarFactory(的.cpp和.h),而这又依赖于汽车(的.cpp和.h)创建makefiles时遇到问题
我当前的尝试是这样的:
CarBuyer: CarBuyer.cpp CarFactory Car
clang++ -std=c++11 -v -o CarBuyer CarBuyer.cpp CarFactory Car
Car: Car.cpp Car.h
clang++ -std=c++11 Car.cpp Car.h
CarFactory: CarFactory.cpp CarFactory.h
clang++ -std=c++11 CarFactory CarFactory.cpp CarFactory.h
clean:
rm -f core CarBuyer
但我发现了一个未定义的函数错误编译时从CarFactory起源:
clang++ -std=c++11 CarFactory.cpp CarFactory.h
clang: warning: treating 'c-header' input as 'c++-header' when in C++ mode,
this behavior is deprecated
/usr/bin/../lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/crt1.o: In
function `_start':
(.text+0x20): undefined reference to `main'
/tmp/CarFactory-13dbb4.o: In function `FordFactory::makeCar()':
CarFactory.cpp:(.text+0x5a): undefined reference to `Ford::Ford()'
/tmp/CarFactory-13dbb4.o: In function `ToyotaFactory::makeCar()':
CarFactory.cpp:(.text+0xba): undefined reference to `Toyota::Toyota()'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [CarFactory] Error 1
代码编译于VS2015罚款铿锵++编译时,领导让我相信我的错误是在Makefile。
任何帮助表示赞赏!