2017-05-19 2 views
3

tensorflow에 타사 C 라이브러리를 추가하여 예제 중 하나에서 사용할 수 있습니다. 따라야 할 예가없는 것처럼 보이므로 어떤 도움도 인정 될 것입니다.tensorflow에 타사 C 라이브러리를 추가하는 방법은 무엇입니까?

여기 제 3 자 C 라이브러리로 event2를 사용하고있는 제 작품입니다.

나는 event2/헤더를 제공하기 위해 '에선 -s'tensorflow에서/THIRD_PARTY을 만들었습니다

ls -al ~/code/tensorflow/third_party/event2 
lrwxr-xr-x 1 XXXX staff 25 May 17 16:03 ~/code/tensorflow/third_party/event2 -> /usr/local/include/event2 

/usr/local/include> ls event2 
BUILD    bufferevent_struct.h event_compat.h  listener.h   thread.h 
buffer.h    dns.h    event_struct.h  rpc.h    util.h 
buffer_compat.h  dns_compat.h   http.h    rpc_compat.h   visibility.h 
bufferevent.h  dns_struct.h   http_compat.h  rpc_struct.h 
bufferevent_compat.h event-config.h  http_struct.h  tag.h 
bufferevent_ssl.h event.h    keyvalq_struct.h  tag_compat.h 

THIRD_PARTY/event2/BUILD : tensorflow/예에서

licenses(["notice"]) 

cc_library(
    name = "event2", 
    srcs = glob([ "*.h" ]), 
    visibility = [ "//visibility:public" ], 
) 

/그것은 공동

cc_binary(
    name = "label_image", 
    srcs = [ 
     "main.cc", 
     "my_new_file_using_events.c", 
     "my_new_file_using_events.h", 
    ], 
    linkopts = ["-lm", ], 
    copts = [ "-Ithird_party", ], 
    deps = [ 
     "//tensorflow/cc:cc_ops", 
     "//tensorflow/core:framework_internal", 
     "//tensorflow/core:tensorflow", 
     "//third_party/event2:event2", 
    ], 
) 

: label_image/BUILD, 나는 libevent하는 기준과 events2 라이브러리를 사용하여 내 테스트 파일을 추가 잘 mpiles하지만 바이너리를 실행할 때 다음과 같은 오류를 얻을 :

dyld: lazy symbol binding failed: Symbol not found: _event_base_new 
    Referenced from: /Users/XXXX/code/tensorflow/bazel-bin/tensorflow/examples/label_image/label_image 
    Expected in: flat namespace 

dyld: Symbol not found: _event_base_new 
    Referenced from: /Users/XXXX/code/tensorflow/bazel-bin/tensorflow/examples/label_image/label_image 
    Expected in: flat namespace 

[1] 41395 trace trap bazel-bin/tensorflow/examples/label_image/label_image 

libevent.a, libevent.dylib 및 기타 libevent * libs와/usr/local/lib에 있습니다. nm에 따르면, event_base는 정의되지 않았습니다.

nm -f label_image | grep event_base 
    U _event_base_dispatch 
    U _event_base_new 

어떻게이 링크 오류를 해결할 수 있습니까? 감사.

답변

0

거기에 event2 소스가 누락되지 않았습니까? 또한 .h를 hdrs 속성에 넣으려고한다고 생각합니다.

cc_library(
    name = "event2", 
    hdrs = glob([ "*.h" ]), 
    srcs = glob([ "*.cpp" ]), 
    visibility = [ "//visibility:public" ], 
) 

관련 문제