首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Makefile gtkmm;collect2.exe t2.exe:错误: ld返回1个退出状态

Makefile gtkmm;collect2.exe t2.exe:错误: ld返回1个退出状态
EN

Stack Overflow用户
提问于 2017-01-11 06:17:44
回答 1查看 867关注 0票数 0

我非常确定问题出在makefile中的某个地方,因为当我编写程序时,标题中的错误将我指向第12行,即链接器命令。我花了一段时间来修补它,但似乎什么都不能用。以下是我的代码/makefile。我正在用mingw32做这个。

makefile:

代码语言:javascript
复制
CXXFLAGS := -std=c++11 -Wall -Werror -g $(shell pkg-config gtkmm-3.0 --cflags)
LDLIBS = -lpthread $(shell pkg-config gtkmm-3.0 --libs)

all: test

test: sample.count

sample.count: InIT_Printer_Install_Assistant
    ./InIT_Printer_Install_Assistant

InIT_Printer_Install_Assistant: main.o win_home.o
    g++ $(CXXFLAGS) $(LDLIBS) -o $@ $^ `pkg-config gtkmm-3.0 --cflags --libs`

main.o: main.cpp win_home.h
win_home.o: win_home.cpp win_home.h

clean:
    -rm -f *.o *~

spotless: clean
    -rm -f InIT_Printer_Install_Assistant

main.cpp:

代码语言:javascript
复制
#include <gtkmm.h>
#include <iostream>
#include "win_home.h"

int main(int argc, char *argv[])
{
    auto app = Gtk::Application::create(argc, argv, "com.InIT.PrinterApp");

    HomeGUI win_home;

    win_home.set_default_size(600,400);
    win_home.set_title("InIT Self-Service Printer Management");

    return app->run(win_home);
}

win_home.cpp:

代码语言:javascript
复制
#include "win_home.h"

HomeGUI::HomeGUI()
{
    //build interface/gui
    this->buildInterface();


    //retrieve printers

    //create printer Buttons

    //register Handlers
    //this->registerHandlers();
}

void HomeGUI::buildInterface()
{
    //combo boxes
    /*
    Gtk::HBox combo_rowbox = Gtk::HBox(false, 10);
    Gtk::ComboBox combobox_department = Gtk::ComboBox(false);
    Gtk::ComboBox combobox_building = Gtk::ComboBox(false);
    combo_rowbox.pack_start(child, false, false, padding=0)
    add(combo_rowbox);
    */
    return;
}

win_home.h:

代码语言:javascript
复制
#ifndef GTKMM_INIT_PRINTER_INSTALL_ASSISTANT_H
#define GTKMM_INIT_PRINTER_INSTALL_ASSISTANT_H

#include <vector>
#include <string>
#include <iostream>
#include <gtkmm.h>

class HomeGUI : public Gtk::Window
{
public:
    HomeGUI();
    virtual ~HomeGUI();

    void buildInterface();
    void registerHandlers();
    //void defaultToFloorPlan();
protected:
    //Signal Handlers

    //Member variables
    std::string m_selected_department;
    std::string m_selected_building;
    std::string m_selected_floor;

    //Member widgets
    //std::vector<Gtk::Button> m_printbuttons;
    //HelpGUI m_win_help;
    //UninstallGUI m_win_uninstall;

    //Member logic
    //ClientLogic logic;
};

#endif

制作后的结果:

C:\msys32\home\PrintApplication/win_home.cpp:3:对VTT for HomeGUI' C:\msys32\home\PrintApplication/win_home.cpp:3: undefined reference toVTT的未定义引用HomeGUI‘C:\msys32\home\PrintApplication/win_home.cpp:3:对vtable for HomeGUI' C:\msys32\home\PrintApplication/win_home.cpp:3: undefined reference tovtable的未定义引用HomeGUI’VTT for HomeGUI' C:\msys32\home\PrintApplication/win_home.cpp:3: undefined reference tovtable未定义引用HomeGUI‘C:\msys32\home\PrintApplication/win_home.cpp:3:对vtable for HomeGUI' C:\msys32\home\PrintApplication/win_home.cpp:3: undefined reference tovtable未定义引用’HomeGUI‘集合VTT未定义引用: error: ld returned 1退出状态make:* Makefile:12: InIT_Printer_Install_Assistant错误1

如果有人能告诉我为什么会发生这样的事情,我将不胜感激。

**注意:如你所知,我仍然是makefile的新手,所以当涉及到一般的makefile格式时,请随时纠正我的错误。

EN

回答 1

Stack Overflow用户

发布于 2017-01-11 06:38:05

@不重要的评论解决了这个问题。纯虚函数和非纯虚函数都必须有一个主体。将我的win_home.h更改为:

代码语言:javascript
复制
#include "win_home.h"

HomeGUI::HomeGUI()
{
    //build interface/gui
    this->buildInterface();


    //retrieve printers

    //create printer Buttons

    //register Handlers
    //this->registerHandlers();
}
HomeGUI::~HomeGUI()
{

}

void HomeGUI::buildInterface()
{
    //combo boxes
    /*
    Gtk::HBox combo_rowbox = Gtk::HBox(false, 10);
    Gtk::ComboBox combobox_department = Gtk::ComboBox(false);
    Gtk::ComboBox combobox_building = Gtk::ComboBox(false);
    combo_rowbox.pack_start(child, false, false, padding=0)
    add(combo_rowbox);
    */
    return;
}

void HomeGUI::registerHandlers()
{

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41579419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档