-1

我创建了一个名为 Blue 的 C++ 类,并在该类中创建了一个名为void drawblueline() 我是编程新手的函数,但我想我会在命令行中通过编写来调用它

int main( )
{

Blue blue; 
blue.drawblueline();
}

如果我调用它的方式没有问题,我会收到两个链接器错误,blue.draw.. 那么错误可能出在函数中?

4

2 回答 2

1

如果你在 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。

于 2013-07-26T08:05:21.993 回答
1

确保在 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

于 2013-07-26T09:08:43.887 回答