我创建了一个名为 Blue 的 C++ 类,并在该类中创建了一个名为void drawblueline()
我是编程新手的函数,但我想我会在命令行中通过编写来调用它
int main( )
{
Blue blue;
blue.drawblueline();
}
如果我调用它的方式没有问题,我会收到两个链接器错误,blue.draw..
那么错误可能出在函数中?
我创建了一个名为 Blue 的 C++ 类,并在该类中创建了一个名为void drawblueline()
我是编程新手的函数,但我想我会在命令行中通过编写来调用它
int main( )
{
Blue blue;
blue.drawblueline();
}
如果我调用它的方式没有问题,我会收到两个链接器错误,blue.draw..
那么错误可能出在函数中?
如果你在 somefile.cpp 中实现类方法并且你的程序在 otherfile.cpp 中,你需要通过g++ somefile.cpp otherfile.cpp ...
.
链接器错误意味着您包含了所有需要的头文件,但您没有编译某些函数的定义。
编译更复杂项目的最佳方式是通过 Makefile。
示例生成文件:
all: main
main: main.cpp blue.o
g++ main.cpp blue.o -o main
blue.o: blue.cpp blue.h
g++ blue.cpp -c -o blue.o
然后你可以通过命令编译你的项目make
这个 makefile 说你的项目需要 main,main 依赖于 main.cpp 和 blue.o。因此,如果 main.cpp 或 blue.o 不是实际的,它会尝试通过 command 将它们都生成,然后再生成 main g++ main.cpp blue.o -o main
。
然后,blue.o 依赖于 blue.cpp 和 blue.h。Blue 将被编译为目标文件 blue.o。
确保在 main.cpp 文件中包含所有必需的头文件,并且在运行应用程序之前编译并链接所有依赖项(.cpp 文件)。
例如,您有两个名为 First.cpp 和 Second.cpp 和 Main.cpp 的文件,首先您必须编译 First.cpp,Second.cpp 然后 Main.cpp,现在您必须链接它们以解析所有引用。
如果您使用的是 Ubuntu 或类似操作系统,此行将同时编译和链接
g++ First.cpp Second.cpp Main.cpp -o Bluerectangle
上面的行编译然后链接所有文件并创建一个名为Bluerectangle 的目标文件。
要运行它,请在终端中输入Bluerectangle。