gpt4 book ai didi

c++ - 在 g++ 中链接文件

转载 作者:IT老高 更新时间:2023-10-28 23:10:55 25 4
gpt4 key购买 nike

最近我尝试用 g++(在 Ubuntu 上)编译一个程序。通常我使用 Dev-C++(在 Windows 上),只要我制作一个项目并将所有必要的文件放在那里,它就可以正常工作。

编译程序时出现的错误是:

$filename.cpp: undefined reference to '[Class]::[Class Member Function]'

用到的文件如下:

带有main函数的源代码(.cpp)文件。

带有函数原型(prototype)的头文件。

包含每个函数定义的 .cpp 文件。

任何帮助将不胜感激。

最佳答案

您可能尝试编译和链接而不是只编译源文件,或者不知何故忘记了一些东西。

变体一(所有内容都在一行中;始终重新编译所有内容):

g++ -o myexecutable first.cpp second.cpp third.cpp [other dependencies, e.g. -Lboost, -LGL, -LSDL, etc.]

变体二(逐步;如果没有提供 -o,gcc 将重用输入文件名并在不链接时仅更改扩展名;此变体最适用于 makefile;允许您跳过未更改的部分):

g++ -c first.cpp
g++ -c second.cpp
g++ -c third.cpp
g++ -o myexecutable first.o second.o third.o [other dependencies]

变体三(一些占位符):

不会列出它,但上面提到的参数也可以作为占位符,例如g++ -c *.cpp 会将当前目录下的所有cpp文件编译成o(bject)同名文件。

总体而言,除非您确实必须在没有任何 IDE 的情况下工作,否则您不必为此担心太多。如果您对命令行语法不是那么精通,请先坚持使用 IDE。

关于c++ - 在 g++ 中链接文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6532400/

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