[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:20568] Re: liboctaveを使ったルーチンのコンパイル



松田@東京電機大です.

libreadline に関するエラーは -lncurses を追加すれば解決されると思いま
す. また,--enabledl としたので, -ldl も必要なのではないでしょうか?

Kenya SUZUKI wrote:
> はじめまして。
> 先ほどPlamo MLに登録させていただきました鈴木と申します。
> 以後よろしくお願いします。
> 
> 早速の質問なので大変恐縮なのですが、
> GNU Octaveの数値計算ライブラリをg++で使おうと考えております。
> http:www.octave.orgからoctave-2.0.17.tgzを入手して、INSTALLおよびINSTALL.Octaveに書いているとおりに	
> 
> %./configure --enable-shared --enabledl
> %make
> %make install
> 
> としてコンパイルした後に、
> 
> // test.cpp
> #include <iostream>
> #include <octave/config.h>
> #include <octave/Matrix.h>
> 
> using namespace std;
> 
> int
> main()
> {
> 	Matrix m(2,2,1.0);
> 	cout<<"Hello Octave!"<<endl<<m;
> 	return 0;
> }
> 
> //ここまで
> 
> というソースを
> 
> % g++ test.cpp -I/usr/local/include -L/usr/local/lib/octave -loctave -lcruft \ 
> -lreadline -lkpashsea -lg2c -loctinterp
> 
> にてコンパイルしたところ
> 
> /usr/lib/gcc-lib/i386-pc-linux/2.95.3/libg2c.a(open.o): In function `f_open':
> open.o(.text+0x494): the use of `tempnam' is dangerous, better use `mkstemp'
> /usr/local/lib/octave/liboctinterp.so: undefined reference to `dlerror'
> /usr/lib/libreadline.so: undefined reference to `tgetnum'
> /usr/lib/libreadline.so: undefined reference to `tgoto'
> /usr/lib/libreadline.so: undefined reference to `tgetflag'
> /usr/lib/libreadline.so: undefined reference to `BC'
> /usr/local/lib/octave/liboctinterp.so: undefined reference to `dlclose'
> /usr/local/lib/octave/liboctave.so: undefined reference to `screenheight'
> /usr/lib/libreadline.so: undefined reference to `tputs'
> /usr/local/lib/octave/liboctinterp.so: undefined reference to `dlopen'
> /usr/lib/libreadline.so: undefined reference to `PC'
> /usr/local/lib/octave/liboctinterp.so: undefined reference to `dlsym'
> /usr/lib/libreadline.so: undefined reference to `tgetent'
> /usr/local/lib/octave/liboctave.so: undefined reference to `screenwidth'
> /usr/local/lib/octave/liboctave.so: undefined reference to 
> `kpse_clear_dir_cache'
> /usr/lib/libreadline.so: undefined reference to `UP'
> /usr/lib/libreadline.so: undefined reference to `tgetstr'
> collect2: ld returned 1 exit status
> 
> なるエラーが出てしまいます。
> OCtave自身のコンパイルは通っているので、test.cppのコンパイル時にリンクするライブラリに不足があるに違いないと踏んでいるのですが、
> 何が不足なのか良くわからんのです。
> 誠に、お手数をお掛け致しますがどなた様かご教授いただけましたら幸いです。
> なにとぞよろしくお願いします。
> 
> #日経Linux8月号に添付のCDに収録されていたPlamoをAs Installedで使っています。

-------------------------------------------------------------------
     mmm     mmm     | matuda@film.s.dendai.ac.jp
  ((^_^)) <- ->    | 松田七美男@東京電機大学 環境物質化学科 教授
    {   } ({   })  | 〒101-8457  千代田区神田錦町2-2
    _I I_    _I_     | Tel:03(5280)3402  Fax:03(5280)3570

References
[plamo:20567] liboctaveを使ったルーチンのコンパイル, Kenya SUZUKI

[検索ページ] [メール一覧]
Plamo ML 公開システム