在ubuntu上编译ilixi。

时间:2014-11-28 13:26:42

标签: c++ g++

如果我提出这个问题,请对不起,但我不知道如何解决这个问题。如果不是为了一些hello world项目,我之前从未使用过c ++。我需要在ubuntu上编译ilixi。我已经安装了所有依赖项,并且autogen不会再次抱怨缺少依赖项。

在我运行的那一刻

make

我收到此错误:

Surface.cpp: In member function 'void ilixi::Surface::setGeometry(int, int, int, int)':
Surface.cpp:157:44: error: in C++98 'r' must be initialized by constructor, not by '{...}'
 DFBRectangle r = { x, y, width, height };
                                        ^
Surface.cpp: In member function 'void ilixi::Surface::flip(const ilixi::Rectangle&)':
Surface.cpp:223:53: error: in C++98 'rect' must be initialized by constructor, not by '{...}'
             DFBRectangle rect = { 0, 0, w, r.y1 };
                                                 ^
Surface.cpp:229:68: error: in C++98 'rect' must be initialized by constructor, not by '{...}'
             DFBRectangle rect = { 0, r.y2 + 1, w, h - r.y2 - 1 };
                                                                ^
Surface.cpp:235:70: error: in C++98 'rect' must be initialized by constructor, not by '{...}'
             DFBRectangle rect = { 0, r.y1, r.x1, r.y2 - r.y1 + 1 };
                                                                  ^
Surface.cpp:241:85: error: in C++98 'rect' must be initialized by constructor, not by '{...}'
             DFBRectangle rect = { r.x2 + 1, r.y1, w - r.x2 - 1, r.y2 - r.y1 + 1 };
                                                                                 ^

我认为这与c ++的某些编译器变体有关,因为我正在尝试编写ilixi的1.0.0版本,并且我认为在发布的库的代码中不能像这样的错误。我会坚持使用C ++ 98并改变它。有人能告诉我我需要使用哪种c ++方言吗?

这是我发现的唯一一个类似于我的错误的参考。我试图改变那种方言的makefile,但没有运气

非常感谢

3 个答案:

答案 0 :(得分:0)

尝试将-std=c++11添加到gcc命令行。代码使用统一初始化,这是一个C ++ 11功能。你需要一个相当新版本的gcc,最新的4.8.x或4.9.x或更新版本。

答案 1 :(得分:0)

您必须使用C ++ 11标准编译您的应用程序。首先,确保至少拥有gcc 4.7。

因此,为了编译代码,您应该使用gcc -Wall **-std=c++11** -o test test.cpp

在Makefile中,搜索如下内容:CFLAGS = -Wall -std=c++11

答案 2 :(得分:0)

INSTALL文件告诉你:

  

简单地说,shell命令`./configure;使; make install'应该   配置,构建和安装此软件包。

确保安装了它们,然后尝试运行./configure,这将检查缺少的库。

./ configure

make&& sudo make install

如果您有先决条件,Autogen也应该有效。