Menu

ライブラリのエラー

Anonymous
2018-08-03
2018-08-05
  • Anonymous

    Anonymous - 2018-08-03

    現在C++でLRFクラスを作ろうとしているのですが,いざビルドしてみると読み込んだライブラリを定義しているソースのそのライブラリのパス(例:ticks.cpp内でticks.hが見つから無いと言われた)が違うと言われたのですべて修正したところ↓のようなエラーが出てしましまいました.どうすればいいですか.環境はUbuntu18.04.1,Eclipse4.7.3a(C/C++),LinuxGCCです.また,URGライブラリはプロジェクトにインポートしました.
    make all
    Building file: ../src/urg_serial.c
    Invoking: GCC C Compiler
    gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/urg_serial.d" -MT"src/urg_serial.o" -o "src/urg_serial.o" "../src/urg_serial.c"
    Finished building: ../src/urg_serial.c

    Building file: ../src/urg_serial_linux.c
    Invoking: GCC C Compiler
    gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/urg_serial_linux.d" -MT"src/urg_serial_linux.o" -o "src/urg_serial_linux.o" "../src/urg_serial_linux.c"
    ../src/urg_serial_linux.c:20:31: error: unknown type name ‘urg_serial_t’
    static void serial_initialize(urg_serial_t serial)
    ^~~~~~~~~~~~
    ../src/urg_serial_linux.c:29:26: error: unknown type name ‘urg_serial_t’
    static void serial_clear(urg_serial_t
    serial)
    ^~~~~~~~~~~~
    ../src/urg_serial_linux.c:38:17: error: unknown type name ‘urg_serial_t’
    int serial_open(urg_serial_t serial, const char device, long baudrate)
    ^~~~~~~~~~~~
    ../src/urg_serial_linux.c:82:19: error: unknown type name ‘urg_serial_t’
    void serial_close(urg_serial_t serial)
    ^~~~~~~~~~~~
    ../src/urg_serial_linux.c:91:25: error: unknown type name ‘urg_serial_t’
    int serial_set_baudrate(urg_serial_t
    serial, long baudrate)
    ^~~~~~~~~~~~
    ../src/urg_serial_linux.c:134:18: error: unknown type name ‘urg_serial_t’
    int serial_write(urg_serial_t serial, const char data, int size)
    ^~~~~~~~~~~~
    ../src/urg_serial_linux.c:143:25: error: unknown type name ‘urg_serial_t’
    static int wait_receive(urg_serial_t serial, int timeout)
    ^~~~~~~~~~~~
    ../src/urg_serial_linux.c:165:29: error: unknown type name ‘urg_serial_t’
    urg_serial_t
    serial, int timeout)
    ^~~~~~~~~~~~
    ../src/urg_serial_linux.c:193:17: error: unknown type name ‘urg_serial_t’
    int serial_read(urg_serial_t serial, char data, int max_size, int timeout)
    ^~~~~~~~~~~~
    src/subdir.mk:80: recipe for target 'src/urg_serial_linux.o' failed
    make: *** [src/urg_serial_linux.o] Error 1

    13:53:00 Build Finished (took 170ms)

     
    • j-fujimoto

      j-fujimoto - 2018-08-03

      URGライブラリをライブラリファイル(.soや.a)から使うのではなく、
      ソースをそのまま取り込もうとされていますか?

      そういう意図ではないのであれば
      http://urgnetwork.sourceforge.net/html_ja/usage_gcc_page.html
      に記載している方法で通常のライブラリと同様の使い方を行ってください。

      ソースをそのままプロジェクトに取り込みたいのであればurg_serial_linux.cはソースファイルとしてコンパイルする必要はありません。
      urg_serial.cの内部を見ていただければわかりますが、
      urg_serial.cではLinux環境の場合はurg_serial_linux.cをincludeしています。
      urg_serial_linux.cはurg_serial.cからincludeされることを前提として作られていますので、単体でコンパイルはできません。
      ですので、includeディレクトリとしてurg_serial_linux.cを置いているディレクトリを指定していただくだけで、urg_serial_linux.cをプロジェクトのソースファイルとして登録する必要はありません。(urg_serial_linux.cとurg_serial.cを同じディレクトリに置いている場合はincludeディレクトリの指定は必要ありません)

       

      Last edit: j-fujimoto 2018-08-03
  • Anonymous

    Anonymous - 2018-08-05

    Eclipseを使わずに通常の方法でやることにしました.

     

Anonymous
Anonymous

Add attachments
Cancel