0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WSLでdoxygenのコンパイル

Last updated at Posted at 2019-06-16

概要

  • Windows Subsystem for LinuxのUbuntuでdoxygenをmakeした記録です。
  • 主にiconv周りでもちゃもちゃしました。
    • cmakeは3.10です

参考

http://www.doxygen.jp/install.html など

やったこと

git clone

git clone https://github.com/doxygen/doxygen.git

いろいろ考えて?バージョンを最新の一つ前に戻します。

git checkout Release_1_8_15

依存ライブラリのinstall

公式ドキュメントに書いてありますが、flex, bisonなどが必要です。
またiconvのライブラリも必要のはず。ubuntuは直接libiconvとかが入らないらしく、libc6でなんとかとググると出てきますが……下記でiconvのファイルを入手してコンパイルしておけば後々悩みが少なくなるかもしれません。

wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz

(バージョンは適当に変えてください)
(これのコンパイルはあっさりできたはず)

Qtのインストール

apt-get install qtcreator
apt-get install qt4-default

cmake

いちおうこれでいいはず!でcmakeを開始します。
私は下記により出オチしました。

CMake Error at cmake/FindIconv.cmake:130 (MESSAGE):
  Unable to determine iconv() signature

どうやらIconvを見つけるのに苦労してるなって感じで、ここで経緯は省きますが、しかし下記を使えばどうにかなるやん……なのです。

https://github.com/Kitware/CMake/blob/master/Modules/FindIconv.cmake

上記のファイルを/usr/share/cmake-3.10/Modulesに入れ、doxygenのソース一式にあるFindIconv.cmakeは使用されないように消すか変名します。

make

さてcmakeできたぞ、というところでmakeしますがまたコケました。

../lib/libdoxycfg.a(portable_c.c.o): In function `portable_iconv_open':
portable_c.c:(.text+0x1f): undefined reference to `libiconv_open'
../lib/libdoxycfg.a(portable_c.c.o): In function `portable_iconv':
portable_c.c:(.text+0x5c): undefined reference to `libiconv'
../lib/libdoxycfg.a(portable_c.c.o): In function `portable_iconv_close':
portable_c.c:(.text+0x76): undefined reference to `libiconv_close'
collect2: error: ld returned 1 exit status
src/CMakeFiles/doxygen.dir/build.make:99: recipe for target 'bin/doxygen' failed

自分で作ったlibiconvにこれらのシンボルは存在するので、libiconvが見つからないかリンクされないか……という状態のようです。
cmakeするときにiconvを無理やり見つけられるようにしたのが悪影響しているのかわかりませんが、もう力業で解決します。

  • src/CMakeFiles/doxygen.dir/link.txt の
  • 末尾に-liconvを書き足す
  • いま作業しているフォルダのlibフォルダにlibiconv.soを放り込んでおく

これをする理由はMakefileとかエラーログを見ていると何となくわかります。


これでコンパイルは完了です。
Dotのあれがないのでよくわかりませんが、とりあえずhtmlは無事作れるものを作れました。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?