1

更新: わかりました、このページで見つけました: --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 -plibgc.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
...
  1. Mono をサポートする Virtuoso をインストールするには、次のチュートリアルを使用しました。

  2. 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 をビルドする必要がありましたか?

4

1 に答える 1