我尝试分两步编译和链接我的应用程序:
编译:
g ++ -c -o file1.o file1.cc general_header.h
g ++ -c -o file2.o file2.cc general_header.h
g ++ -c -o file3.o file3.cc general_header.h
链接:
g ++ -o myApp file1.o file2.o file3.o
我收到如下链接错误:
file1.o:文件无法识别:文件格式无法识别
collect2:ld返回1退出状态
我做错了吗?
由于
答案 0 :(得分:3)
您不应该在命令行中提到您的头文件 - 您不希望直接编译它,而只是因为它包含在您的源文件中。另外,我会让编译器命名对象文件,因为在显式执行此操作时很容易出错。因此,您的编译命令应如下所示:
g++ -c file1.cc
然后你也可以说:
g++ -c file1.cc file2.cc file3.cc
答案 1 :(得分:2)
无需在输入文件列表中包含头文件
g++ -c -o file1.o file1.cc