LoginSignup
0
0

More than 5 years have passed since last update.

CentOS7にEFLTKをインストール

Posted at

RTAI-Lab tutorial: Scilab, Comedi, and real-time controlの「2.3 EFLTK library」の内容です。

ソースコードの入手

チュートリアルでは、SVNで取得する手順になっているが、リポジトリが移動?していたので、直接 https://sourceforge.net/projects/ede/files/ から最新のバージョン( efltk-2.0.8.tar.gz, ede-2.1.tar.gz )を取得。

ビルド時のエラー1

チュートリアル記載の順に

# autoconf
# ./configure --disable-mysql --disable-unixODBC
# ./emake

とすすめたところ、以下のエラー。

filename_list.cpp: 関数 ‘int fl_filename_list(const char*, dirent***, int (*)(dirent**, dirent**))’ 内:
filename_list.cpp:62:71: エラー: ‘int (*)(const void*, const void*)’ から ‘int (*)(const dirent**, const dirent**)’ への無効な変換です [-fpermissive]
     return scandir(dir, list, 0, (int(*)(const void*,const void*))sort);
                                                                       ^
In file included from /usr/src/efltk/efltk/filename.h:49:0,
                 from filename_list.cpp:35:
/usr/include/dirent.h:255:12: エラー:   initializing argument 4 of ‘int scandir(const char*, dirent***, int (*)(const dirent*), int (*)(const dirent**, const dirent**))’ [-fpermissive]
 extern int scandir (const char *__restrict __dir,

エラーチェックが働きすぎているようなので、エラーチェックを止めようとする。

# ./configure --disable-mysql --disable-unixODBC CXXFLAGS='-fpermissive'

上記でうまくいないので、「configure」ファイル内のCFLAGSと、CXXFLAGSに'-fpermissive'を追加して再度、ビルド。

ビルド時のエラー2

In file included from Fl_Png.cpp:5:0:
/usr/include/png.h:857:16: エラー: forward declaration of ‘png_struct {aka struct png_struct_def}’
 typedef struct png_struct_def png_struct;

はじめのエラーは抜けられたが、別のエラーで止まった。調べてみたところ、libpngのインタフェースが途中(1.5.x ?)で変更になった事が原因のよう。古いインタフェースのlibpngを追加インストール。

# yum install libpng12-devel

古いlibpngの指定を、環境変数や、configureのオプションでやりたかったけど、上手くいかないので、思い切って、src/images/Fl_Png.cppの、#include <png.h>#include <libpng12/png.h>に変更して切り抜けた。

上記で、ビルドが最後まで通るようになりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0