Skip to content

ERROR wiki

Dahye Park edited this page Jul 6, 2021 · 17 revisions

(Build) Protocol buffer version error

build시 설치한 protocol buffer와 DIVA2의 protocol buffer의 버전과 다를 때 발생한다.

#sensors.pb.h

#if PROTOBUF_VERSION < 3017000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3017003 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif
...

해결방법

sensors.pb.h에서 직접 버전을 수정하는 것으로는 에러를 해결할 수 없다. sensors.proto를 실행시켜 sensors.pb.h를 업데이트 한다.

cd diva2/protobuf
protoc --cpp_out=./ sensors.proto
protoc --proto_path=./ --python_out=./ sensors.proto

‘PlaceholderText’ is not a member of ‘QPalette’

아래와 같이 .ui파일에서 직접 PlaceholderText가 들어간 부분을 모두 지워주어야 한다.

       <colorrole role="PlaceholderText">
        <brush brushstyle="NoBrush">
         <color alpha="128">
          <red>0</red>
          <green>0</green>
          <blue>128</blue>
         </color>
        </brush>
       </colorrole>

이때 다음 코드는 삭제하지 않아도 된다.

&lt;colorrole role=&quot;PlaceholderText&quot;&gt;

‘CV_CAP_PROP_FPS’ was not declared in this scope

/home/diva2/diva2/MobilePlatform/Sensing/CamSensingThread.cpp:46:14: error: ‘CV_CAP_PROP_FPS’ was not declared in this scope
     cap->set(CV_CAP_PROP_FPS, 15);

diva2/MobilePlatform/Sensing/CamSensingThread.h 파일에 다음과 같이 CV_CAP_PROP_FPS를 선언해준다.

enum {
  CV_CAP_PROP_FPS =5
};

‘CV_INTER_LINEAR’ was not declared in this scope

/home/diva2/diva2/MobilePlatform/Sensing/CamSensingThread.cpp:62:54: error: ‘CV_INTER_LINEAR’ was not declared in this scope
       resize(frame_org, frame, Size(640, 360), 0, 0, CV_INTER_LINEAR);

diva2/MobilePlatform/Sensing/CamSensingThread.h 파일에 다음과 같이 CV_INTER_LINEAR를 선언해준다.

enum {
  CV_INTER_LINEAR =1
};

zeroMQ를 사용하는데 bind가 -1을 return하는 경우

해당 port 번호가 이미 사용중인 경우이다. 다음의 명령어를 통해 port의 사용 상태를 확인할 수 있다.

netstat -nap | grep 9899

result:

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:9899            0.0.0.0:*               LISTEN      1301/./darknet    

다음의 명령어를 통해 해당 포트를 삭제할 수 있다.

kill -9 1301

여기서 1301은 해당 포트를 사용하는 프로세스의 ID임에 유의한다.