首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C++中使用相同的头文件编译和链接目标文件?

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

Stack Overflow用户
提问于 2012-06-04 23:43:35
回答 2查看 16.6K关注 0票数 8

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

需要注意的是,头文件foo.hh仅在两个源文件foo1.ccfoo2.cc之间定义一次。

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

代码语言:javascript
运行
复制
g++ foo1.cc foo2.cc

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

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

代码语言:javascript
运行
复制
g++ -c foo1.cc
g++ -c foo2.cc
g++ -o foo1.o foo2.o

GCC编译器抱怨说,foo2.cc中存在对函数的未定义引用。这些函数应该在foo1.cc中定义;但是,链接器无法识别这一点。

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

EN

Stack Overflow用户

回答已采纳

发布于 2012-06-04 23:46:30

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

代码语言:javascript
运行
复制
g++ -c foo1.cc
g++ -c foo2.cc
g++ -o foo foo1.o foo2.o

-o参数接受输出文件的名称,因此在本例中,它将使用链接结果覆盖foo1.o。

票数 10
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10884105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档