问题描述
更新:好的,我在此页面上找到了它:必须使用--enable-mono参数运行./configure.然后,您还将发现缺少了一些其他地方都没有提到的依赖项.
UPDATE: Okay, I found it on this page: you have to run ./configure with the --enable-mono parameter. Then you'll also find out that some more dependencies are missing that aren't mentioned anywhere.
可悲的是,这给我带来了另一个我无法解决的问题.既然这里还有悬而未决的赏金,让我们问这个.
Sadly, this leaves me with another problem I cannot solve. As we still have the unfinished bounty here, let's ask this.
执行./autogen和./configure --enable_mono(在代码分支develop/6和development/7上尝试过)之后,出现以下错误:
After doing ./autogen and ./configure --enable_mono (tried it on the code branches develop/6 and develop/7), I get the following error:
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仍然给我同样的错误.我相信此文件周围的某处以及此编译错误已被掩埋,但我无法修复.
This link has the contents of the problematic file. If I remove the import for gc_typed.h
, the next import is not found. I just did sudo apt-get install libgc-dev
which worked. Make still gives me the same error. I believe somewhere around this file and this compilation the error is buried, but I can't fix it.
我是Linux新手,有人可以给我建议这里是什么问题或如何解决吗?
I'm a Linux noob, can somebody give me advice what might be the problem here or how to solve it?
其他信息:1. ldconfig -v -p
清楚地说libgc.so存在,那么为什么这个make脚本寻找头文件?
Additional Information:1. ldconfig -v -p
clearly says that libgc.so exists, so why is this make script looking for the header?
...
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,我使用了以下教程:
To install Virtuoso with Mono support, I used the following tutorials:
- Virtuoso上的自述文件 GitHub页面
- 我在此Mono-Virtuoso页面上进行导出时遇到一些小问题,可能其中一个是问题吗?
- the README on the Virtuoso GitHub page
- I had small problems doing the exports on this Mono-Virtuoso page, might one of those be the problem?
Virtuoso以前一直在工作,我只是不让Virtuoso使用--enable-mono进行构建. Mono运行良好,可以毫无问题地构建和执行dll和exe..
Virtuoso has been working before, I just don't get Virtuoso to build with --enable-mono. Mono works well, can build and execute dlls and exes without a problem..
.
.
我在Ubuntu服务器上安装了Virtuoso和Mono,并使用 教程将sanity.cs类编译为sanity.dll文件.当我 尝试导入向量",我收到一条消息:
I installed Virtuoso and Mono on a Ubuntu server and using this tutorial compiled the sanity.cs class to a sanity.dll file. When I tried importing the 'vector' I got a message:
SQLState: 42001
Message: SR185: Undefined procedure DB.DBA.import_clr.
这是否意味着我将.dll放在错误的位置?还是我有 安装了错误版本的Virtuoso?
Does that mean that I put the .dll in the wrong place? Or do I have the wrong version of Virtuoso installed?
我使用apt-get安装了Virtuoso和Mono.
I used apt-get to install Virtuoso and Mono.
更新:好的,Virtuoso的apt-get版本太老了.这 OpenLink Twitter帐户告诉我应该构建新版本 从Github帐户.
UPDATE: Okay, the apt-get version of Virtuoso was waaay too old. The OpenLink Twitter account told me that the new versions should be built from the Github account.
现在,我按照以下自述文件在Ubuntu上构建了Virtuoso https://github.com/openlink/virtuoso-opensource ,但这不是 说明如何以任何方式集成Mono.
Now I built Virtuoso on Ubuntu following the readme on https://github.com/openlink/virtuoso-opensource, but that doesn't explain how to integrate Mono in any way.
- 我已经使sanity.cs Hello World文件工作了,确认Mono设置正确.
- 服务器正在运行,但是Virtuoso.ini中的Mono部分为空:
.
[Mono]
;MONO_TRACE = Off
;MONO_PATH = <path_here>
;MONO_ROOT = <path_here>
;MONO_CFG_DIR = <path_here>
;virtclr.dll =
我将默认路径放在此文件中,如下所示:
I put the default paths in this file like this:
[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集成到 还是告诉我如何进行?我应该用 不同的设置?
I cannot find
a virtclr.dll on my system. How can I generate it? Can someone help me with a link explaining how to integrate Mono in Virtuoso or tell me how to proceed? Should I have built Virtuoso with different settings?
推荐答案
有点混乱.它依赖于mono-1.1.7
,并且在尝试使用它依赖的项目之前不会构建它.所以构建很混乱.我强烈怀疑开发人员没有在项目的这一方面进行构建/测试.
It's a bit of a mess. It depends on mono-1.1.7
, and it doesn't build it before trying to use items that it depends on; so the build is messy. I would strongly suspect that the developers are not building/testing this aspect of their project.
您需要手动下载mono-1.1.7
-这是因为单声道tarball的位置不在他们认为的位置.例如来自:
You need to download mono-1.1.7
manually - this is because the location of the mono tarball is not where they think it is.; e.g. from:
wget -O binsrc/mono/mono-1.1.7.tar.gz ftp://ftp1.freebsd.org/mirror/FreeBSD-Archive/ports/distfiles/mono-1.1.7.tar.gz
如果没有wget,则可以使用curl:
if you don't have wget, then you can use curl:
curl -o binsrc/mono/mono-1.1.7.tar.gz ftp://ftp1.freebsd.org/mirror/FreeBSD-Archive/ports/distfiles/mono-1.1.7.tar.gz
运行配置:
./configure --enable-mono
交换Makefile
中binsrc
和libsrc
子目录的顺序:
Swap the order of the binsrc
and libsrc
subdirectories in the Makefile
:
sed -i 's/libsrc binsrc/binsrc libsrc/' Makefile
运行make(如果想使其更快,请使用-j选项,例如-j2):
run make (use a -j option if you want to make it faster e.g. -j2):
make
构建将失败.不要惊慌.再次交换binsrc和libsrc :
The build will fail. Do not panic. Swap binsrc and libsrc again:
sed -i 's/binsrc libsrc/libsrc binsrc/' Makefile
并重新运行make:
make
构建应该会成功.
请记住,它使用了mono-1.1.7的私有副本,并且大多数现代linux发行版都使用2.0,因此可能与此有些冲突.
Bear in mind, it uses a private copy of mono-1.1.7, and most modern linux distros use 2.0, so there could be some conflicts with this.
这篇关于在Ubuntu上构建Virtuoso(具有Mono集成):在libgc上构建错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!