2017-08-11 3 views
0

Centos.EL7でmeshlab-2016.12をコンパイルするのに問題があります。
私はいくつかの方法を持っています。
CentOSに上の最新のQtのバージョン5.6.1であるよう はQtの-5.9.1にQTを更新しました - 私は、以前にインストールしていたが、少なくともQt5.7がmeshlabCentos EL7でメッシュリストを編集

のために必要とされる

sudo yum install qt5-qtbase 
sudo yum install qt5-qtx11extras 
sudo yum install qt5-qtbase-devel 

は次にこれらを設定しますenv。変数

setenv QTDIR /usr/local/Qt-5.9.1 
setenv QTINC /usr/local/Qt-5.9.1/include 
setenv QTLIB /usr/local/Qt-5.9.1/lib 
setenv PATH /usr/local/Qt-5.9.1/bin:$PATH 
setenv PATH /usr/local/bin:/usr/local/Qt-5.9.1/bin:$PATH 

は、その後の/ opt /テストには/ opt /テストには/ opt/TESTING

  1. インストールvcglib

  2. ダウンロードmeshlab-2016.12にインストール、テストマシン上の指示に従っそれを解凍してください。

  3. 次は

    jhead-2.95

    gmake 
    gmake install 
    

    含む(作るために - 外部ライブラリを作るために

-project

qmakeは(これは、QTの正しいバージョンをピックアップ)

qmake src/external/external.pro 

(外部ライブラリ - jhead-2.95を含む)

qmake src/meshlab_mini.pro 

(最小限のプラグインでメッシュ・リストを構築するには)

これは以下のように失敗します。

../../vcglib/vcg/complex/algorithms/clean.h:1789:0: 
warning: ignoring #pragma omp parallel [-Wunknown-pragmas] 

pragma omp parallel for schedule(dynamic, 10) 

g++ -Wl,-O1 -Wl,-z,origin -Wl,-rpath,\$ORIGIN/../distrib -Wl,-rpath, 
/usr/local/Qt-5.9.1/lib -o ../distrib/meshlab main.o mainwindow_Init.o 
mainwindow_RunTime.o glarea.o multiViewer_Container.o plugindialog.o 
customDialog.o filterScriptDialog.o saveSnapshotDialog.o layerDialog.o 
savemaskexporter.o changetexturename.o stdpardialog.o ml_std_par_dialog.o 
xmlstdpardialog.o additionalgui.o xmlgeneratorgui.o ml_render_gui.o 
ml_rendering_actions.o ml_default_decorators.o ml_selection_buffers.o 
trackball.o trackmode.o coordinateframe.o glarea_setting.o filterthread.o 
qrc_meshlab.o moc_interfaces.o moc_mainwindow.o moc_glarea.o 
moc_multiViewer_Container.o moc_plugindialog.o moc_customDialog.o 
moc_filterScriptDialog.o moc_saveSnapshotDialog.o moc_savemaskexporter.o 
moc_changetexturename.o moc_layerDialog.o moc_stdpardialog.o 
moc_ml_std_par_dialog.o moc_xmlstdpardialog.o moc_additionalgui.o 
moc_xmlgeneratorgui.o moc_ml_render_gui.o moc_ml_rendering_actions.o 
moc_filterthread.o -L../external/lib/linux-g++ -ljhead -L../distrib 
-lcommon -lGLU -L/usr/local/Qt-5.9.1/lib -lQt5OpenGL -lQt5Widgets -lQt5Gui 
-lQt5Xml -lQt5XmlPatterns -lQt5Network -lQt5Script -lQt5Core -lGL -lpthread 
/bin/ld: cannot find -ljhead 
collect2: error: ld returned 1 exit status 
gmake[1]: *** [../distrib/meshlab] Error 1  
gmake[1]: Leaving directory `/opt/TESTING/meshlab-2016.12/meshlab'  
gmake: *** [sub-meshlab-make_first-ordered] Error 2 

これは、ldがljheadを見つけることができないということです。コンパイルの他の部分は任意のアドバイスは、この時点で有用であろう、LD

/bin/ld -V 
GNU ld version 2.25.1-22.base.el7 
    Supported emulations: 
    elf_x86_64 
    elf32_x86_64 
    elf_i386 
    i386linux 
    elf_l1om 
    elf_k1om 

と /

usr/bin/ld -V 
GNU ld version 2.25.1-22.base.el7 
    Supported emulations: 
    elf_x86_64 
    elf32_x86_64 
    elf_i386 
    i386linux 
    elf_l1om 
    elf_k1om 

を見てみると例えば

-I../src/external/glew-1.7.0/include -I../src/external/jhead-2.95 

かかわらず、それを見つけているように見えるん。いくつかの進歩を与えた以下のウィリアム・ブラウン、から しようとしました回避策:うまくいけば、私はちょうど何か出

更新を見逃しています。後で失敗しました

gmake[1]: Leaving directory `/opt/src/meshlab/meshlabplugins/filter_layer' 
cd meshlabplugins/filter_measure/ && (test -e Makefile || /opt/bin/Qt5.7.1/5.7/gcc_64/bin/qmake 
/opt/src/meshlab/src/meshlabplugins/filter_measure/filter_measure.pro -o Makefile) && gmake -f Makefile 
gmake[1]: Entering directory `/opt/src/meshlab/meshlabplugins/filter_measure' 
gmake[1]: *** No rule to make target `filter_measure.xml', needed by `../../distrib/plugins/libfilter_measure.so'. Stop. 
gmake[1]: Leaving directory `/opt/src/meshlab/meshlabplugins/filter_measure' 
gmake: *** [sub-meshlabplugins-filter_measure-make_first-ordered] Error 2 

答えて

0

私はCentos 7(7.3.1611)でこの問題を解決できました。

は、2つの問題があるように思われる、と私は、これは単なる回避策、右の修正であることを主張しません。

タールファイルI cdを開封した後、トップレベルに(/local/meshlabに解凍しました)。

# ln -s ./src/external eternal 

理由で障害が発生した声明で、-Lがない./srcで、そのトップレベルの外部フォルダを指摘しているように見えるということで:私は、リンクを作成します。

私はexternal.proを問題なく作成でき、出力.aファイルはすべて/local/meshlab/lib/linux-g++に入ります。リンクがなければ、それらは一時的なビルドフォルダに深く入っていました。

ただし、-Lは表示されません。すでに出荷済みの.aファイルがある/local/meshlab/src/external/lib/linux-g++/にあります。だから私はそこには.aファイルをコピーします。

# cp /local/meshlab/lib/linux-g++/*.a /local/meshlab/src/external/lib/linux-g++/ 

今、私が使用している場合:

# qmake src/meshlab_mini.pro 
# gmake 

それは/local/meshlab/distribで実行可能meshlabバイナリを動作し、構築します。

+0

ありがとうございました。それは私が報告したエラーを取り除いたものです。残念ながら、別のものが生成されました(私はmeshlab_full.proを構築しようとしています)。 '' gmake [1]:*** '../../distrib/plugins 'に必要な' 'filter_measure.xml' /libfilter_measure.so '。停止.' 進歩だ! –

関連する問題