好的,所以我在youtube上学习c ++教程,因为我是一个相对较新的程序员。我正在尝试学习如何在创建类时使用头文件等。在本教程中,我们将学习如何使用箭头成员选择运算符。
https://www.youtube.com/watch?v=2RP4f9beidc&list=PLAE85DE8440AA6B83&index=42
我没有使用他正在使用的IDE的代码块。我在gedit上编写代码并使用Cygwin编译和运行它。
非常感谢任何帮助!
以下是简单的代码:
#include <iostream>
#include "Sally.h"
using namespace std;
int main(){
Sally sallyObject;
Sally *sallyPointer = &sallyObject;
sallyObject.printCrap();
sallyPointer->printCrap();
}
#include "Sally.h"
#include <iostream>
using namespace std;
Sally::Sally()
{
}
void Sally::printCrap(){
cout << "did someone say steak?" << endl;
}
#ifndef SALLY_H
#define SALLY_H
#include <iostream>
class Sally
{
public:
Sally();
void printCrap();
protected:
private:
};
#endif // SALLY_H
/tmp/ccfOEJJF.o:Main.cpp :(。text + 0x15):对Sally::Sally()'
/tmp/ccfOEJJF.o:Main.cpp:(.text+0x15): relocation truncated to fit: R_X86_64_PC32 against undefined symbol
未定义的引用Sally :: Sally()'
/tmp/ccfOEJJF.o:Main.cpp:(.text+0x29):对Sally::printCrap()'
/tmp/ccfOEJJF.o:Main.cpp:(.text+0x29): relocation truncated to fit: R_X86_64_PC32 against undefined symbol
未定义的引用Sally :: printCrap()'
/tmp/ccfOEJJF.o:Main.cpp:(.text+0x35):未定义引用Sally::printCrap()'
/tmp/ccfOEJJF.o:Main.cpp:(.text+0x35): relocation truncated to fit: R_X86_64_PC32 against undefined symbol
Sally :: printCrap()'
collect2:错误:ld返回1退出状态
答案 0 :(得分:2)
您输入cygwin的命令必须是
g++ Sally.cpp Main.cpp
您不在命令行中包含头文件。作为一条建议,查找如何使用 makefile 。
答案 1 :(得分:0)
在testsuite/Makefile
中我将prog的规则更改为:
prog.o: prog.c
$(CC) -c -o $@ $<
prog.exe: prog.o
$(CC) -o $@ $<
这让事情发生了变化 - 我不确定它是否正确 - 但它继续在protos.h
中提出问题,因为已经有Elf_ [ESP] hdr类型的系统头定义......我不得不将它们更改为pelf_ [ESP] hdr以获取所有原型,定义和参考:
protos.h
chrpath.c
elf.c
killrpath.c