【问题标题】:FLTK - Compile Multiple .cpp's - LinuxFLTK - 编译多个 .cpp's - Linux
【发布时间】:2014-09-10 21:26:39
【问题描述】:

为了这个问题,我把我的情况简化为一个更直接和简单的情况。

我从一个文件开始,blah.cpp,它非常简单。

#include <FL/Fl.H>
#include <FL/Fl_Window.H>

int main(int argc, char **argv) {
    Fl_Window* win = new Fl_Window(100,100,100,100,"Title");
    win->show();
    return Fl::run();
}

要编译它,我在终端中输入(在文件blah.cpp 的目录中)

fltk-config --compile blah.cpp

效果很好。我只需键入./blah,屏幕上就会显示 100 像素的窗口。但是,一旦我想扩展到多个文件,即blah.cpphead.hblah2.cpp,就会出现我的问题。

/* head.h */
#ifndef HEAD
#define HEAD

#include <FL/Fl.H>
#include <FL/Fl_Window.H>

class My_Window{
    public:
        My_Window(int,int);
        bool open();
        ~My_Window(){ 
            delete win;
        }
    private:
        Fl_Window* win;
};

#endif

/* blah2.cpp  */
#include "head.h"

My_Window::My_Window(int w, int h):{
    win = new Fl_Window(w,h);
    win->show();
}

bool My_Window::open(){
    return Fl::run();
}

/* blah.cpp */
#include "head.h"

int main() {
  Window win(300,300);
  return win.open();
}

我的问题是,我将如何使用终端编译这个项目(blah.cpp 和 blah2.cpp)?我最初的猜测是将所有内容放在同一个目录中并执行类似的操作

fltk-config --compile *.cpp

fltk-config --compile "*.cpp"

但这些都不起作用。我将如何编译这个?

[解决方案]

我在完成输入后立即解决了这个问题,但是我在互联网上看到了很多次,所以也许这会对某人有所帮助。

我取消了fltk-config 命令,并坚持使用常规的g++

g++ -std=c++11 blah.cpp blah2.cpp -o blah -lfltk

这样就成功了!然后创建了程序的可执行文件,标题为blah!当然,-std=c++11 行仅意味着遵循 c++11 标准,因此对于我的情况来说这不是完全必要的。

【问题讨论】:

    标签: c++ linux fltk


    【解决方案1】:

    fltk-config --compile &lt;file.cc&gt; 在您有一个单文件项目时是一个方便的选项。它编译并链接您的应用程序。

    如果您有多个文件,例如 main.ccaccount.cc,您最好的选择是先进行编译,然后将它们链接在一起。

    类似的东西(注意我也请求了图像库):

    g++ `fltk-config --cxxflags` main.cc
    g++ `fltk-config --cxxflags` account.cc
    gcc -o myapp `fltk-config --use-images --ldflags` main.o account.o
    

    【讨论】:

      猜你喜欢
      • 2016-01-12
      • 1970-01-01
      • 2021-02-06
      • 1970-01-01
      • 2014-12-30
      • 2011-07-26
      • 2014-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多