我的项目包含一个 sub.h 文件,我被告知只有以下内容:
int sub(int n, int *A, int *B, int *C);
sub.h 对从 input.txt 文件中获取的3个数组执行未指定的操作。
说明中提到 sub.o 将在项目提交后提供。我的问题是,如何为给定的 .o 文件创建一个我无法访问的makefile?由于我没有 sub.o ,因此很难判断我的makefile是否会成功。
项目只包含 main.cpp , sub.h 和makefile。
这是我到目前为止对makefile的所有内容:
project: main.o sub.o
g++ main.o message.o -o project
main.o: main.cpp sub.h
g++ -c -g main.cpp
clean:
rm main.o sub.o project
答案 0 :(得分:0)
一种解决方案是让sub.cpp
提供sub()
的一些实现,并使您的Makefile构建为sub.o
。
提交项目时,请将提供的sub.o
放在应该生成的位置。在这种情况下,"真实" sub.o
将用于编译二进制文件。
答案 1 :(得分:0)
如果您丢失了目标文件,则无法编译为可执行文件(即链接)。但是您可以(仅)将main.c编译为目标文件 - 在此阶段,未定义sub并不重要。我只能假设您提交时发生链接。
这个main.c将编译为一个对象:
int sub(int n, int *A, int *B, int *C);
int main()
{
int n = 0;
int* A = 0;
int* B = 0;
int* C = 0;
sub(n, A, B, C);
}
使用例如
gcc -c main.cpp
如果你确实掌握了sub.o,你可以使用
进行链接gcc main.o sub.o -o project