C++ - /tmp/cckpbRW.o:main.cc:(.text+0x9d):未定义的参考

发布于 2024-10-13 05:29:13 字数 425 浏览 2 评论 0原文

按照此处的示例: http://www.learncpp.com/cpp-tutorial /19-header-files/

add.hmain.cpp 有关

当我尝试编译 main.cc (我刚刚使用了另一个扩展名)时,我得到以下信息:

/tmp/cckpbRW.o:main.cc:(.text+0x9d):undefined reference to 'add(int, int)' collect2: ld returned 1 exit status

我该如何解决此问题?

谢谢。

Following the example here: http://www.learncpp.com/cpp-tutorial/19-header-files/

Relating to add.h and main.cpp

When I try to compile main.cc (I just used another extension), I get the following:

/tmp/cckpbRW.o:main.cc:(.text+0x9d):undefined reference to 'add(int, int)' collect2: ld returned 1 exit status

How can I fix this issue?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苯莒 2024-10-20 05:29:13

您没有将您的 main 对象链接到您的 add 对象,因此当链接器尝试构建可执行文件时,它无法找到符号 add(int, int) 它使用。

您应该编译 main 对象、add 对象并将它们链接在一起,如下所示:

g++ -c -o main.o main.cpp
g++ -c -o add.o add.cpp
g++ -o executable main.o add.o

否则

g++ -o executable main.cpp add.cpp

这会将 add.cpp 和 main.cpp 一起编译

Your didn't link your main object to your add one, so when the linker tries to build the executables it cannot find the definition of symbol add(int, int) it uses.

You should compile main object, add object and link them together, like this:

g++ -c -o main.o main.cpp
g++ -c -o add.o add.cpp
g++ -o executable main.o add.o

or

g++ -o executable main.cpp add.cpp

this will compile add.cpp and main.cpp together

零度℉ 2024-10-20 05:29:13

看起来您没有将第二个 .cpp 文件链接到最终的可执行文件中。要么同时编译并链接它们:

$ c++ -Wall -Werror -pedantic -g -otest1 add.cpp main.cpp

要么单独编译它们然后链接:

$ c++ -Wall -Werror -pedantic -g -c main.cpp
$ c++ -Wall -Werror -pedantic -g -c add.cpp
$ c++ -Wall -Werror -pedantic -g -otest1 add.o main.o

Looks like you are not linking the second .cpp file into final executable. Either compile and link them at the same time:

$ c++ -Wall -Werror -pedantic -g -otest1 add.cpp main.cpp

or compile them separately and then link:

$ c++ -Wall -Werror -pedantic -g -c main.cpp
$ c++ -Wall -Werror -pedantic -g -c add.cpp
$ c++ -Wall -Werror -pedantic -g -otest1 add.o main.o
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文