Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 未定义对'的引用;可用于Adafruit#GFX';由于交叉编译树莓皮_C++_Linux_Makefile_Raspberry Pi - Fatal编程技术网

C++ 未定义对'的引用;可用于Adafruit#GFX';由于交叉编译树莓皮

C++ 未定义对'的引用;可用于Adafruit#GFX';由于交叉编译树莓皮,c++,linux,makefile,raspberry-pi,C++,Linux,Makefile,Raspberry Pi,在Visualstudio中,通过尝试交叉编译到raspberry pi,我得到以下错误: VisualGDB:在上的目录“/tmp/VisualGDB/c/Users/Revius/Desktop/usbtest/conversitecsc++/LinuxProject12/LinuxProject12”中运行“make CONFIG=Debug”pi@raspberrypi(宋承宪) g++-ggdb-ffunction sections-O0-DDEBUG-c LinuxProject12

在Visualstudio中,通过尝试交叉编译到raspberry pi,我得到以下错误:

VisualGDB:在上的目录“/tmp/VisualGDB/c/Users/Revius/Desktop/usbtest/conversitecsc++/LinuxProject12/LinuxProject12”中运行“make CONFIG=Debug”pi@raspberrypi(宋承宪)

g++-ggdb-ffunction sections-O0-DDEBUG-c LinuxProject12.cpp-o Debug/LinuxProject12.o-MD-MF Debug/LinuxProject12.dep

g++-o Debug/LinuxProject12-Wl,-gc节-L/home/pi/libssd1306/build/ArduiPi_OLED-Wl,--start-group Debug/LinuxProject12.o-Wl,--rpath='$ORIGIN'-Wl,--end-group Debug/LinuxProject12.o:在函数'Adafruit_GFX::~Adafruit_GFX()'中:

C:\Users\Revius\AppData\Local\VisualGDB\RemoteSourceCache\raspberrypi\0003\include\Adafruit\u GFX.h(35):错误VGDB1000:未定义对“Adafruit\u GFX的vtable”的引用

编译器指向的Adafruitgfx.H部分是

    "virtual ~Adafruit_GFX() {};"
在:

奇怪的是,我在raspberry pi上使用了“make”,在工作中,我可以开始工作,这样代码就可以了?但不是通过Visualstudio

所以我的问题是: 由于我正在交叉编译,可能是编译器缺少一些文件,还是有一些选项可以让它工作

我必须朝哪个方向寻找答案?

通过调整(或正确填写te设置),我使其正常工作。


通过调整(或正确填写te设置),我使其工作。

您是否在基类中为
invertDisplay
提供了定义?是的。但是,您在这里看到的代码部分要大得多,因此可能会有更多的定义未使用。但是代码在树莓皮上工作。它们使用相同的“交叉编译器”。是否有一些设置需要调整?是否在基类中为
反转显示提供了定义?是的,它是。但是,您在这里看到的代码部分要大得多,因此可能会有更多的定义未使用。但是代码在树莓皮上工作。它们使用相同的“交叉编译器”。是否有一些设置需要调整?
    #ifndef _ADAFRUIT_GFX_H
    #define _ADAFRUIT_GFX_H

    #define swap(a, b) { int16_t t = a; a = b; b = t; }

    //class Adafruit_GFX : public Print {
    class Adafruit_GFX {
    public:

    //Adafruit_GFX();
    // i have no idea why we have to formally call the constructor. kinda sux
    void constructor(int16_t w, int16_t h);
    virtual ~Adafruit_GFX() {};
    // this must be defined by the subclass
    virtual void drawPixel(int16_t x, int16_t y, uint16_t color) = 0;
    virtual void invertDisplay(boolean i);