更新: わかりました、このページで見つけました: --enable-mono パラメーターを指定して ./configure を実行する必要があります。次に、どこにも言及されていない、さらにいくつかの依存関係が欠落していることもわかります。
悲しいことに、これは解決できない別の問題を私に残します。ここにはまだ未完成の懸賞金があるので、これを聞いてみましょう。
./autogen および ./configure --enable_mono を実行した後 (develop/6 および develop/7 のコード ブランチで試しました)、次のエラーが発生します。
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../../libsrc/Dk -fno-strict-aliasing -O2 -DMONO_USE_EXC_TABLES -fexceptions -D_REENTRANT -D_GNU_SOURCE -Wall -DNDEBUG -DPOINTER_64 -I/usr/local/src/virtuoso-opensource/libsrc/Xml.new -DOPENSSL_NO_KRB5 -Dlinux -D_GNU_SOURCE -DFILE64 -D_LARGEFILE64_SOURCE -I../../binsrc/mono/mono-1.1.7/libgc/include -I../../libsrc -I../../libsrc/Dk -DNO_UDBC_SDK -DUSE_INCLUDED_LIBGC=1 -g -O2 -MT libthrp_gc_la-sched_pthread_gc.lo -MD -MP -MF .deps/libthrp_gc_la-sched_pthread_gc.Tpo -c sched_pthread_gc.c -fPIC -DPIC -o .libs/libthrp_gc_la-sched_pthread_gc.o
sched_pthread_gc.c:42:22: fatal error: gc_typed.h: No such file or directory
compilation terminated.
make[2]: *** [libthrp_gc_la-sched_pthread_gc.lo] Error 1
make[2]: Leaving directory `/usr/local/src/virtuoso-opensource/libsrc/Thread'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/virtuoso-opensource/libsrc'
make: *** [all-recursive] Error 1
このリンクには、問題のあるファイルの内容が含まれています。のインポートを削除するgc_typed.h
と、次のインポートが見つかりません。私はちょうどsudo apt-get install libgc-dev
それが働いた。Makeはまだ同じエラーを出します。このファイルとこのコンパイルのどこかにエラーが埋もれていると思いますが、修正できません。
私は Linux の初心者です。ここで何が問題なのか、またはそれを解決する方法を教えてもらえますか?
追加情報: 1. ldconfig -v -p
libgc.so が存在することが明確に示されているのに、なぜこの make スクリプトはヘッダーを探しているのでしょうか?
...
libgdbm_compat.so.3 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgdbm_compat.so.3
libgdbm.so.3 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgdbm.so.3
libgd.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgd.so.2
libgcrypt.so.11 (libc6,x86-64) => /lib/x86_64-linux-gnu/libgcrypt.so.11
libgccpp.so.1 (libc6,x86-64) => /usr/lib/libgccpp.so.1
libgccpp.so (libc6,x86-64) => /usr/lib/libgccpp.so
libgcc_s.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libgcc_s.so.1
libgc.so.1 (libc6,x86-64) => /usr/lib/libgc.so.1
libgc.so (libc6,x86-64) => /usr/lib/libgc.so
libgamin-1.so.0 (libc6,x86-64) => /usr/lib/libgamin-1.so.0
libgailutil.so.18 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libgailutil.so.18
libfuse.so.2 (libc6,x86-64) => /lib/libfuse.so.2
...
Mono をサポートする Virtuoso をインストールするには、次のチュートリアルを使用しました。
- Virtuoso GitHub ページの README
- この Mono-Virtuoso ページでエクスポートを行う際に小さな問題がありました。
Virtuoso は以前にも動作していましたが、Virtuoso を --enable-mono でビルドすることはできません。Mono は問題なく動作し、dll と exe を問題なくビルドして実行できます。.
.
.
元の質問:
Virtuoso と Mono を Ubuntu サーバーにインストールし、このチュートリアルを使用して sanity.cs クラスを sanity.dll ファイルにコンパイルしました。「ベクター」をインポートしようとすると、次のメッセージが表示されました。
SQLState: 42001 Message: SR185: Undefined procedure DB.DBA.import_clr.
それは、.dll を間違った場所に置いたということですか? または、間違ったバージョンの Virtuoso をインストールしていますか?
apt-get を使用して Virtuoso と Mono をインストールしました。
更新: さて、Virtuoso の apt-get バージョンは古すぎました。OpenLink の Twitter アカウントは、新しいバージョンは Github アカウントからビルドする必要があると教えてくれました。
https://github.com/openlink/virtuoso-opensourceの readme に従って、Ubuntu で Virtuoso をビルドしました が、Mono を統合する方法については説明していません。
- Mono が正しくセットアップされていることを確認して、sanity.cs Hello World ファイルが機能するようにしました。
- サーバーは実行されますが、Virtuoso.ini の Mono セクションは空です。
.
[Mono] ;MONO_TRACE = Off ;MONO_PATH = <path_here> ;MONO_ROOT = <path_here> ;MONO_CFG_DIR = <path_here> ;virtclr.dll =
次のように、このファイルにデフォルトのパスを入れます。
[Mono] ;MONO_TRACE = Off ;MONO_PATH = /usr/bin/mono ;MONO_ROOT = /usr/lib/mono ;MONO_CFG_DIR = /etc/mono ;virtclr.dll =
find
システムで virtclr.dllを実行できません。どうすれば生成できますか?Mono を Virtuoso に統合する方法を説明するリンクを手伝ってくれる人や、続行する方法を教えてくれる人はいますか? 別の設定で Virtuoso をビルドする必要がありましたか?