0

QtCreator で書かれたプロジェクトのコンパイルで問題が発生しました。まず第一に、プロジェクトは OS X で正常に動作し (最初に開発された場合)、Linux (Mint) ではコンパイルされません。Linux では大文字と小文字が区別されますが、OS X では区別されないため、最初に問題を修正する必要がありました。

今、私たちは解決できない問題を抱えています。

RInside API を使用していますが、リンクの問題のようです。何を試しても、次のエラーが発生します。

/home/patrick/Taf/rthing/src/IHM/main.cpp:8: erreur : undefined reference to `RInside::RInside(int, char const* const*, bool, bool, bool)'

プロジェクトのいくつかの要素を次に示します。

RInside への呼び出しを含む、makefile の 3 行:

CXXFLAGS      = -pipe -Wno-unused-parameter -I/usr/share/R/include -I/home/patrick/R/x86_64-pc-linux-gnu-library/3.0/Rcpp/include -I/home/patrick/R/x86_64-pc-linux-gnu-library/3.0/RInside/include -g -std=gnu++0x -Wall -W -D_REENTRANT -fPIC $(DEFINES)
INCPATH       = -I../IHM -I. -I-I/home/patrick/R/x86_64-pc-linux-gnu-library/3.0/Rcpp/include -I-I/home/patrick/R/x86_64-pc-linux-gnu-library/3.0/RInside/include -I../../../../Qt/5.6/gcc_64/include -I../../../../Qt/5.6/gcc_64/include/QtSvg -I../../../../Qt/5.6/gcc_64/include/QtWidgets -I../../../../Qt/5.6/gcc_64/include/QtGui -I../../../../Qt/5.6/gcc_64/include/QtCore -I. -I../../../../Qt/5.6/gcc_64/mkspecs/linux-g++
LFLAGS        = -L/usr/lib/R/lib -lR -lblas -llapack -L/home/patrick/R/x86_64-pc-linux-gnu-library/3.0/RInside/lib -lRInside -Wl,-rpath,/home/patrick/R/x86_64-pc-linux-gnu-library/3.0/RInside/lib -Wl,-z,origin -Wl,-rpath,\$$ORIGIN -Wl,-rpath,/home/patrick/Qt/5.6/gcc_64/lib

.pro ファイルのこれらの行を参照すると、次のようになります。

RINSIDEINCL =           $$system($$R_HOM/bin/Rscript -e \'RInside:::CxxFlags\(\)\')
RINSIDELIBS =           $$system($$R_HOM/bin/Rscript -e \'RInside:::LdFlags\(\)\')

patrick@petitchat:/usr/lib/R/bin$ Rscript -e 'Rcpp:::CxxFlags()'

与える:

-I/home/patrick/R/x86_64-pc-linux-gnu-library/3.0/Rcpp/include

Rscript -e 'Rcpp:::LdFlags()'

何も与えません (Mac の場合も同様です)。

誰かが助けてくれるなら、私はプロジェクトについてもう少し情報を提供することができます.

4

1 に答える 1

1

QtCreator 経由での使用は、サポートされている仕様から少し外れています。

次のことをお勧めします。

  • 経由で既存の動作するQtの例をビルドします。examples/qtqmake; make
  • 設定を使用して、QtCreator から得られるものを微調整します
  • 一般化できると思われるものがある場合は、プル リクエストとして送信することを検討してください。
于 2016-05-18T19:06:24.100 に答える