2012-11-25 44 views
4

我想在Ubuntu 12.04 64位上构建SLitrani。我已经从源代码构建ROOT 5.34.03,我也没搞清楚,如何设置$删除rootdev的LD_LIBRARY_PATH和PATH变量,所以这个问题是不存在的,但是当我试图让SplineFit我得到G ++:错误:无法识别的选项'-soname'

>>> g++: error: unrecognized option ‘-soname=libSplineFit.so’ 
make: *** [libSplineFit.so] Error 1 

我也确实在Makefiles中将-m32更改为-m64,所以我不知道发生了什么。我能够安装TwoPad,但无法从SplineFit继续。我已经进行了相当长的一段时间,希望有任何帮助。

回答

4

从内存中,soname是一个链接器操作,而不是编译器。所以,如果你与g++这样做,你可能需要更改的选项成类似:

-Wl,-soname=libSplineFit.so 

下面的记录表明,这是必要的:

pax> g++ --soname=x -Wall -o qq qq.cpp 
cc1plus: error: unrecognized command line option "-fsoname=x" 

pax> g++ -Wl,-soname=x -Wall -o qq qq.cpp 

pax> 

online GNU docs for gcc

-Wl,option: pass option as an option to the linker. If option contains commas, it is split into multiple options at the commas.

+0

工作!但遗憾的是,只有创建图书馆,现在我有大量的“未定义的参考”来解决。 –

+0

@ user1850483,这就是为什么要问这个问题的理由:-) – paxdiablo

2

我知道这是一个古老的问题,但经过一周的努力,我想我应该发布我的发现。

我已经成功编辑了makefiles,以便它们可以在Ubuntu 12.04 x64上编译。

您可以完全删除-soname选项,它似乎是不必要的。

如上所述:所有“m32”变为“m64”。

你可以用 “$ ROOTLIBS”

与TwoPad makefile文件重新排序库顺序替换 “$ ROOTSYS /库”(下LIBS + =(.....)),以便-lTwoPad是不会持续在列表中,以及VisuSLitrani make -lPhysMore在其组中的最后一个。

据我所知,说“设置但未使用”的错误可以忽略。

如果任何这些仍然不起作用,请联系我,我可以向您发送我的makefile。

相关问题