■やりたい事
CLISPを利用し、Qt4を利用したGUIアプリケーションを作成したい。
CLISPからQt4を利用する為に、CommonQtライブラリを採用する。
■OS環境
OS → Windows7 Pro
■構築済み開発環境
言語 → CommonLisp「CLISP」(GNU CLISP 2.49 (2010-07-07) http://clisp.cons.org/)
ライブラリ管理 → quicklisp(version 2016-02-22)
CLISP用Qtライブラリ → CommonQt
GUIFrameWork → Qt4.8.7
Qt4用g++コンパイラ → MinGW
※付属のQt4デモアプリケーションの動作確認済み。
※NTEmacs24.5で開発。slime導入済み。
ただし、最終実行・デバッグについては、slimeではなくCLISPプロンプト上で行っている。
■直面している問題
https://common-lisp.net/project/commonqt/#id105941
ここにあるInstallationに習い、(ql:quickload :qt)を実行すると、下記のエラーが発生。
どのように解決すればよいのか分からずGoogle検索をさまよっています。
原因と解決についてご存知の方、ご教示願います。
-----ここから
;; Loaded file C:\Users\kamuycikap.clisprc.lisp
[1]> (ql:quickload :qt)
To load "qt":
Load 1 ASDF system:
qt
; Loading "qt"
*** - Error while trying to load definition for system closer-mop from
pathname
C:\Users\kamuycikap\quicklisp\dists\quicklisp\software\closer-mop-20170124-gi
t\closer-mop.asd:
MAKE-INSTANCE: illegal keyword/value pair :IF-FEATURE, :ABCL in argument
list.
The allowed keywords are (:NAME
:VERSION :DESCRIPTION :LONG-DESCRIPTION :IN-ORDER-TO :DO-FIRST :PARENT
:PATHNAME :AROUND-COMPILE :ENCODING :PROPERTIES :TYPE)
The following restarts are available:
SKIP :R1 skip (DEFSYSTEM CLOSER-MOP NAME ...)
RETRY :R2 retry (DEFSYSTEM CLOSER-MOP NAME ...)
STOP :R3 stop loading file C:\Users\kamuycikap\quicklisp\dists\quick
lisp\software\closer-mop-20170124-git\closer-mop.asd
REINITIALIZE-SOURCE-REGISTRY-AND-RETRY :R4 Retry finding system closer-mop after
reinitializing the source-registry.
ABORT :R5 Give up on "qt"
ABORT :R6 Abort main loop
Break 1 ASDF0[2]> :R6
[3]>
-----ここまで
★★★2017/03/05 追記★★★
アドバイスいただいた内容が、Debian/Linuxでしたので、私が普段使いしているLinuxMint18でやってみました。
しかし、残念ながら下記の手順を実施したのですが、まだ解決に至っておりません。。。。
<1>
gitにて、asdf3をダウンロード
git clone https://gitlab.common-lisp.net/asdf/asdf.git
<2>
その後、ダウンロードしたフォルダにあるコマンドを実行
bash$ make-asdf.sh
<3>
clispを起動し、lisp関数実行
[1]> (load "./build/asdf.lisp")
;; Loading file build/asdf.lisp ...
; Renamed old ASDF package away to ASDF-2.26
;; Loaded file build/asdf.lisp
T
[2]> (load "asdf.asd")
;; Loading file asdf.asd ...
;; Loaded file asdf.asd
T
[3]> (asdf:load-system :asdf)
...ここに沢山のワーニングが表示される
;; Loaded file /home/k/.cache/common-lisp/clisp-2.49-unix-x86/home/k/Downloads/asdf/build/asdf.fas
0 errors, 595 warnings
0 errors, 0 warnings
T
[4]> (print (list "asdf" (asdf:asdf-version)))
("asdf" "3.2.0.1")
("asdf" "3.2.0.1")
[5]> (asdf:initialize-source-registry)
[6]> (ql:quickload :qt)
*** - Error while trying to load definition for system qt from pathname
/home/k/quicklisp/dists/quicklisp/software/commonqt-20161208-git/qt.asd: Component :TRIVIAL-FEATURES not found
The following restarts are available:
RETRY :R1 Retry ASDF operation.
CLEAR-CONFIGURATION-AND-RETRY :R2 Retry ASDF operation after resetting the configuration.
SKIP :R3 skip (EVAL-WHEN # #)
RETRY :R4 retry (EVAL-WHEN # #)
STOP :R5 stop loading file /home/k/quicklisp/dists/quicklisp/software/commonqt-20161208-git/qt.asd
REINITIALIZE-SOURCE-REGISTRY-AND-RETRY :R6 Retry finding system qt after reinitializing the source-registry.
ABORT :R7 Give up on "qt"
ABORT :R8 Abort main loop
★★★2017/03/25 追記★★★
Linux環境ではなく、Windows環境で実施。
Linuxで通った所がWindowsでは通らず・・・・
下記の[1]で読み込んでいるasdf.asdは、asdf3のtarボールを展開して取り出したもの。
私の力量では、LinuxでもWindowsでもCommonQTを動かすことは出来なさそうです。
--- 実施コマンド
[1]> (load "asdf.asd")
;; Loading file asdf.asd ...
;; Loaded file asdf.asd
T
[2]> (asdf:load-system :asdf)
*** - Internal error: statement in file "../src/pathname.d", line 6144 has
been reached!!
Please see http://clisp.cons.org/impnotes/faq.html#faq-bugs for bug
reporting instructions.
The following restarts are available:
RETRY :R1 Retry compiling #<CL-SOURCE-FILE "asdf" "build" "asdf">.
ACCEPT :R2 Continue, treating compiling #<CL-SOURCE-FILE "asdf" "bu
ild" "asdf"> as having been successful.
ABORT :R3 Abort main loop
Break 1 [3]> :R3
0 errors, 0 warnings
[4]> (print (list "asdf" (asdf:asdf-version)))
("asdf" "2.26")
("asdf" "2.26")