gpt4 book ai didi

c++ - 如何使用相同的头文件在 C++ 中编译和链接目标文件?

转载 作者:可可西里 更新时间:2023-11-01 18:19:04 27 4
gpt4 key购买 nike

我遇到了这个问题,当涉及到将我拥有的两个目标文件链接在一起时,GCC 编译器似乎失败了。对象文件 foo1.ccfoo2.cc 都包含来自名为 foo1.hh 的头文件的类。此外,头文件 foo.hh 具有作为出现在 foo1.cc 中的对象实例的外部声明。

需要注意的是头文件foo.hh只会在两个源文件foo1.ccfoo2.cc .

当我使用以下命令编译源文件时,似乎一切正常:

g++ foo1.cc foo2.cc

上述命令将生成一个名为 a.out 的可执行文件。

当我尝试将源文件独立编译成目标文件时:

g++ -c foo1.cc
g++ -c foo2.cc
g++ -o foo1.o foo2.o

GCC 编译器提示在 foo2.cc 中有未定义的函数引用。这些函数应该定义在foo1.cc中;但是,链接器无法识别。

我想知道 GCC 编译器是否有办法解决这个问题。

最佳答案

没问题,您的 gcc 语法有错误。

g++ -c foo1.cc
g++ -c foo2.cc
g++ -o foo foo1.o foo2.o

-o 参数接受输出文件的名称,因此在您的情况下,它将用链接结果覆盖 foo1.o。

关于c++ - 如何使用相同的头文件在 C++ 中编译和链接目标文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10884105/

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