C++ 未定义对'的引用;可用于Adafruit#GFX';由于交叉编译树莓皮
在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部分是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
"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);