2017-06-27 6 views
0

Redhawk SDRにOctave Mファイルをインポートしようとしました。私は最初Octave 3.8.2とRedhawk 2.1.0から始めました。別のユーザーが発見したとき、これはdo_octave_atexitエラー(do_octave_atexit missing? does createOctaveComponent work?)を返しました。答えの解決策にもかかわらず、私はこれを動作させることができませんでした。私はOctave 3.6.4にダウングレードしました。私は今、次のエラーを取得し、私はこの欠陥を克服する方法がわかりません。"DSOがコマンドラインから抜けている"とのCreateOctaveComponentエラー

Redhawkに移植しようとしているファイルの名前は、multByTwo.mです。私は成功しなかったいくつかのファイルを試してみました。 --installパラメータなしでコマンドを実行できます。

[[email protected] workspace]# createOctaveComponent --install multByTwo.m 
multByTwo 
Component multByTwo 
    build.sh 
    multByTwo.spec 
Tests multByTwo 
    tests/test_multByTwo.py 
Implementation: cpp 
WARNING: cpp/Makefile.am.ide has been modified or is a user file that must be explicitly updated, use -f to overwrite 
WARNING: cpp/multByTwo.cpp has been modified or is a user file that must be explicitly updated, use -f to overwrite 
WARNING: cpp/multByTwo.h has been modified or is a user file that must be explicitly updated, use -f to overwrite 
    cpp/main.cpp 
    cpp/Makefile.am 
    cpp/configure.ac 
    cpp/build.sh 
    cpp/reconf 
    cpp/multByTwo_base.cpp 
    cpp/multByTwo_base.h 
    cpp/COPYING 
checking for a BSD-compatible install... /usr/bin/install -c 
checking whether build environment is sane... yes 
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p 
checking for gawk... gawk 
checking whether make sets $(MAKE)... yes 
checking whether make supports nested variables... yes 
./configure: line 2572: test: too many arguments 
checking for gcc... gcc 
checking whether the C compiler works... yes 
checking for C compiler default output file name... a.out 
checking for suffix of executables... 
checking whether we are cross compiling... no 
checking for suffix of object files... o 
checking whether we are using the GNU C compiler... yes 
checking whether gcc accepts -g... yes 
checking for gcc option to accept ISO C89... none needed 
checking for style of include used by make... GNU 
checking dependency style of gcc... gcc3 
checking for g++... g++ 
checking whether we are using the GNU C++ compiler... yes 
checking whether g++ accepts -g... yes 
checking dependency style of g++... gcc3 
checking for pkg-config... /usr/bin/pkg-config 
checking pkg-config is at least version 0.9.0... yes 
checking for omniORB4... yes 
checking for ossie home... /usr/local/redhawk/core 
checking to see ossie is installed... checking for sdr root... /var/redhawk/sdr 
configure: using /var/redhawk/sdr/ as installation prefix 
checking whether make supports nested variables... (cached) yes 
checking for PROJECTDEPS... yes 
checking for INTERFACEDEPS... yes 
checking for LOG4CXX... yes 
checking build system type... x86_64-unknown-linux-gnu 
checking host system type... x86_64-unknown-linux-gnu 
checking for boostlib >= 1.41... yes 
checking whether the Boost::System library is available... yes 
checking for exit in -lboost_system... yes 
checking whether the Boost::Thread library is available... yes 
checking for exit in -lboost_thread... yes 
checking whether the Boost::Regex library is available... yes 
checking for exit in -lboost_regex-mt... yes 
checking that generated files are newer than configure... done 
configure: creating ./config.status 
config.status: creating Makefile 
config.status: executing depfiles commands 
    CXX  multByTwo-main.o 
In file included from /usr/local/include/octave-3.6.4/octave/oct.h:31:0, 
       from multByTwo_base.h:24, 
       from multByTwo.h:20, 
       from main.cpp:19: 
/usr/local/include/octave-3.6.4/octave/config.h:132:0:  warning: "GETTIMEOFDAY_TIMEZONE" redefined [enabled by default] 
#define GETTIMEOFDAY_TIMEZONE struct timezone 
^ 
In file included from /usr/include/omniconfig.h:37:0, 
       from /usr/include/omniORB4/CORBA_sysdep.h:51, 
       from /usr/include/omniORB4/omniInternal.h:42, 
       from /usr/include/omniORB4/CORBA.h:65, 
       from /usr/local/redhawk/core/include/ossie/CF/cf.h:6, 
        from /usr/local/redhawk/core/include/ossie/ossieSupport.h:34, 
       from main.cpp:17: 
/usr/include/omniORB4/acconfig.h:16:0: note: this is the location of the previous definition 
#define GETTIMEOFDAY_TIMEZONE /**/ 
^ 
In file included from /usr/local/include/octave-3.6.4/octave/oct.h:31:0, 
       from multByTwo_base.h:24, 
       from multByTwo.h:20, 
       from main.cpp:19: 
/usr/local/include/octave-3.6.4/octave/config.h:2505:0: warning: "PACKAGE" redefined [enabled by default] 
#define PACKAGE "octave" 
^ 
<command-line>:0:0: note: this is the location of the previous definition 
In file included from /usr/local/include/octave-3.6.4/octave/oct.h:31:0, 
       from multByTwo_base.h:24, 
       from multByTwo.h:20, 
       from main.cpp:19: 
/usr/local/include/octave-3.6.4/octave/config.h:2520:0: warning: "PACKAGE_URL" redefined [enabled by default] 
#define PACKAGE_URL "http://www.gnu.org/software/octave/" 
^ 
In file included from /usr/include/omniconfig.h:37:0, 
       from /usr/include/omniORB4/CORBA_sysdep.h:51, 
       from /usr/include/omniORB4/omniInternal.h:42, 
       from /usr/include/omniORB4/CORBA.h:65, 
       from /usr/local/redhawk/core/include/ossie/CF/cf.h:6, 
        from /usr/local/redhawk/core/include/ossie/ossieSupport.h:34, 
       from main.cpp:17: 
/usr/include/omniORB4/acconfig.h:263:0: note: this is the location of the previous definition 
#define PACKAGE_URL "" 
^ 
In file included from /usr/local/include/octave-3.6.4/octave/oct.h:31:0, 
       from multByTwo_base.h:24, 
       from multByTwo.h:20, 
       from main.cpp:19: 
/usr/local/include/octave-3.6.4/octave/config.h:2669:0: warning: "VERSION"  redefined [enabled by default] 
#define VERSION "3.6.4" 
^ 
<command-line>:0:0: note: this is the location of the previous definition 
    CXX  multByTwo-multByTwo_base.o 
In file included from /usr/local/include/octave-3.6.4/octave/oct.h:31:0, 
       from multByTwo_base.h:24, 
       from multByTwo_base.cpp:16: 
/usr/local/include/octave-3.6.4/octave/config.h:132:0:  warning: "GETTIMEOFDAY_TIMEZONE" redefined [enabled by default] 
#define GETTIMEOFDAY_TIMEZONE struct timezone 
^ 
In file included from /usr/include/omniconfig.h:37:0, 
       from /usr/include/omniORB4/CORBA_sysdep.h:51, 
       from /usr/include/omniORB4/omniInternal.h:42, 
       from /usr/include/omniORB4/CORBA.h:65, 
       from /usr/local/redhawk/core/include/ossie/CF/LogInterfaces.h:, 
       from /usr/local/redhawk/core/include/ossie/Logging_impl.h:25, 
       from /usr/local/redhawk/core/include/ossie/Resource_impl.h:27, 
       from /usr/local/redhawk/core/include/ossie/Component.h:23, 
       from multByTwo_base.h:20, 
       from multByTwo_base.cpp:16: 
/usr/include/omniORB4/acconfig.h:16:0: note: this is the location of the  previous definition 
#define GETTIMEOFDAY_TIMEZONE /**/ 
^ 
In file included from /usr/local/include/octave-3.6.4/octave/oct.h:31:0, 
       from multByTwo_base.h:24, 
       from multByTwo_base.cpp:16: 
/usr/local/include/octave-3.6.4/octave/config.h:2505:0: warning: "PACKAGE" redefined [enabled by default] 
#define PACKAGE "octave" 
^ 
<command-line>:0:0: note: this is the location of the previous definition 
In file included from /usr/local/include/octave-3.6.4/octave/oct.h:31:0, 
       from multByTwo_base.h:24, 
      from multByTwo_base.cpp:16: 
/usr/local/include/octave-3.6.4/octave/config.h:2520:0: warning: "PACKAGE_URL" redefined [enabled by default] 
#define PACKAGE_URL "http://www.gnu.org/software/octave/" 
^ 
In file included from /usr/include/omniconfig.h:37:0, 
       from /usr/include/omniORB4/CORBA_sysdep.h:51, 
       from /usr/include/omniORB4/omniInternal.h:42, 
       from /usr/include/omniORB4/CORBA.h:65, 
       from /usr/local/redhawk/core/include/ossie/CF/LogInterfaces.h:, 
       from /usr/local/redhawk/core/include/ossie/Logging_impl.h:25, 
       from /usr/local/redhawk/core/include/ossie/Resource_impl.h:27, 
       from /usr/local/redhawk/core/include/ossie/Component.h:23, 
       from multByTwo_base.h:20, 
       from multByTwo_base.cpp:16: 
/usr/include/omniORB4/acconfig.h:263:0: note: this is the location of the previous definition 
#define PACKAGE_URL "" 
^ 
In file included from /usr/local/include/octave-3.6.4/octave/oct.h:31:0, 
       from multByTwo_base.h:24, 
       from multByTwo_base.cpp:16: 
/usr/local/include/octave-3.6.4/octave/config.h:2669:0: warning: "VERSION" redefined [enabled by default] 
#define VERSION "3.6.4" 
^ 
<command-line>:0:0: note: this is the location of the previous definition 
    CXX  multByTwo-multByTwo.o 
In file included from /usr/local/include/octave-3.6.4/octave/oct.h:31:0, 
       from multByTwo_base.h:24, 
       from multByTwo.h:20, 
       from multByTwo.cpp:28: 
/usr/local/include/octave-3.6.4/octave/config.h:132:0:  warning: "GETTIMEOFDAY_TIMEZONE" redefined [enabled by default] 
#define GETTIMEOFDAY_TIMEZONE struct timezone 
^ 
In file included from /usr/include/omniconfig.h:37:0, 
       from /usr/include/omniORB4/CORBA_sysdep.h:51, 
       from /usr/include/omniORB4/omniInternal.h:42, 
       from /usr/include/omniORB4/CORBA.h:65, 
       from /usr/local/redhawk/core/include/ossie/CF/LogInterfaces.h:, 
       from /usr/local/redhawk/core/include/ossie/Logging_impl.h:25, 
       from /usr/local/redhawk/core/include/ossie/Resource_impl.h:27, 
       from /usr/local/redhawk/core/include/ossie/Component.h:23, 
       from multByTwo_base.h:20, 
       from multByTwo.h:20, 
       from multByTwo.cpp:28: 
/usr/include/omniORB4/acconfig.h:16:0: note: this is the location of the previous definition 
#define GETTIMEOFDAY_TIMEZONE /**/ 
^ 
In file included from /usr/local/include/octave-3.6.4/octave/oct.h:31:0, 
       from multByTwo_base.h:24, 
       from multByTwo.h:20, 
       from multByTwo.cpp:28: 
/usr/local/include/octave-3.6.4/octave/config.h:2505:0: warning: "PACKAGE" redefined [enabled by default] 
#define PACKAGE "octave" 
^ 
<command-line>:0:0: note: this is the location of the previous definition 
In file included from /usr/local/include/octave-3.6.4/octave/oct.h:31:0, 
       from multByTwo_base.h:24, 
       from multByTwo.h:20, 
       from multByTwo.cpp:28: 
/usr/local/include/octave-3.6.4/octave/config.h:2520:0: warning: "PACKAGE_URL" redefined [enabled by default] 
#define PACKAGE_URL "http://www.gnu.org/software/octave/" 
^ 
In file included from /usr/include/omniconfig.h:37:0, 
       from /usr/include/omniORB4/CORBA_sysdep.h:51, 
       from /usr/include/omniORB4/omniInternal.h:42, 
       from /usr/include/omniORB4/CORBA.h:65, 
       from /usr/local/redhawk/core/include/ossie/CF/LogInterfaces.h:, 
       from /usr/local/redhawk/core/include/ossie/Logging_impl.h:25, 
       from /usr/local/redhawk/core/include/ossie/Resource_impl.h:27, 
       from /usr/local/redhawk/core/include/ossie/Component.h:23, 
       from multByTwo_base.h:20, 
       from multByTwo.h:20, 
       from multByTwo.cpp:28: 
/usr/include/omniORB4/acconfig.h:263:0: note: this is the location of the  previous definition 
#define PACKAGE_URL "" 
^ 
In file included from /usr/local/include/octave-3.6.4/octave/oct.h:31:0, 
       from multByTwo_base.h:24, 
       from multByTwo.h:20, 
       from multByTwo.cpp:28: 
/usr/local/include/octave-3.6.4/octave/config.h:2669:0: warning: "VERSION"  redefined [enabled by default] 
#define VERSION "3.6.4" 
^ 
<command-line>:0:0: note: this is the location of the previous definition 
    CXXLD multByTwo 
    /usr/bin/ld: multByTwo-multByTwo_base.o: undefined reference to symbol '_ZN5boost10filesystem6detail16create_directoryERKNS0_4pathEPNS_6system10error_codeE' 
    /usr/lib64/libboost_filesystem.so.1.53.0: error adding symbols: DSO missing from command line 
    collect2: error: ld returned 1 exit status 
    make: *** [multByTwo] Error 1 

私はいくつかの警告を取得し、それは私が

/usr/lib64/libboost_filesystem.so.1.53.0を得る最後までではありません。エラーがシンボルを追加:DSOは、コマンドラインから行方不明 collect2:エラー:ldが1の終了ステータスを返しました

エラーが発生しました。 Stackoverflowに関する同様の問題は、コマンドラインにさまざまなパラメータを追加することで解決されています。しかし、この場合、コマンドラインは他のエントリーを受け付けません。>> createOctaveComponent --install fileName.m

どのような考えですか?

答えて

1

createOctaveComponentスクリプトは、コードジェネレータを呼び出して、関連するMakefile.amファイルとconfigure.acファイルを作成するようです。あなたが得ているエラーは、リンカのエラーです。 _ZN5boost10filesystem6detail16create_directoryERKNS0_4pathEPNS_6system10error_codeEというシンボルは見つかりません。可能であればgccの古いバージョンが自動的にリンクを追加しますが、ユーザーが指定していないにもかかわらず、あなたがCentOS6よりも新しいOSを使用していると仮定しています。リンカは、このシンボルが/usr/lib64/libboost_filesystem.so.1.53.0にあることを伝えるのに役立つので、単に-lboost_filesystemをビルドに追加することができますが、autotoolsを使用して配置する必要があるため、これは推奨されませんライブラリを検索し、名前を検出します。

生成されたMakefile.amファイルを見ると、$(BOOST_LDFLAGS) $(BOOST_THREAD_LIB) $(BOOST_REGEX_LIB) $(BOOST_SYSTEM_LIB)が表示されますが、ブーストファイルシステムは表示されません。 $(BOOST_FILESYSTEM_LIB)を追加し、対応するAX_BOOST_FILESYSTEMをconfigure.acファイルに追加すると、./reconf && ./configure && make && make installを再実行することができ、適切なブーストファイルシステムライブラリを見つけてそれをリンカ呼び出しに追加する必要があります。

+0

これはうまくいくようです!ありがとうYoussef! 私は、configure.acファイルの_ Dependencies_セクションのMakefile.amと_ AX_BOOST_FILESYSTEM_の_functionname_LDADD_セクションに_ $(BOOST_FILESYSTEM_LIB)_を追加しました。この場合、 "functionname"は "MultByTwo"という名前で作成したMファイルの名前です。 – EastCoast

+0

また、あなたがOSについて正しいと付け加えたいと思います。私はCentOS7を使用しています – EastCoast

関連する問題