gpt4 book ai didi

c++ - 链接未在 Makefile 中完成

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:15 26 4
gpt4 key购买 nike

我尝试使用文件 main.cpp、factorial.cpp、hello.cpp 和 function.h 制作 Makefile在 Linux 命令窗口中键入“make”时,它显示:

g++ -c -o hello main.o factorial.o hello.o
g++: main.o: linker input file unused because linking not done
g++: factorial.o: linker input file unused because linking not done
g++: hello.o: linker input file unused because linking not done

我是第一次制作 Makefile。请给出建议可能是什么问题?Makefile 包含以下代码->

hello: main.o factorial.o hello.o
g++ -c -o hello main.o factorial.o hello.o

main.o: main.cpp
g++ -c -o main.o main.cpp

factorial.o: factorial.cpp
g++ -c -o factorial.o factorial.cpp

hello.o: hello.cpp
g++ -c -o hello.o hello.cpp

如果您想查看单个文件的内容是:1) main.cpp

#include<iostream>
#include"functions.h"
using namespace std;
int main()
{
print_hello();
cout << endl;
cout << "The factorial of 5 is " << factorial(5) << endl;
return 0;
}

2) 你好.cpp

#include<iostream>
#include "functions.h"
using namespace std;

void print_hello()
{
cout << "Hello World!";
}

3) 阶乘.cpp

#include "functions.h"

int factorial(int n)
{
if(n!=1)
{
return(n * factorial(n-1));
}
else return 1;
}

4) 函数.h

 void print_hello();  
int factorial(int n);

最佳答案

g++-c 参数告诉它不要链接:

-c Compile or assemble the source files, but do not link. The linking stage simply is not done. The ultimate output is in the form of an object file for each source file.

你绝对不想要这里的-c:

hello: main.o factorial.o hello.o
g++ -c -o hello main.o factorial.o hello.o

关于c++ - 链接未在 Makefile 中完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18180261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com