Languages

Menu
Sites
Language
OS X에서 2.4 Rev.4 SDK 로 native app 빌드시 에러발생

아래 URL의 질문내용과 동일한 문제이지만,

코멘트에 여러사람들이 해결방법으로 제안한내용을 모두 시도 해보아도 해결되지 않아,

도움을 얻고자 재질문합니다.

https://developer.tizen.org/forums/native-application-development/edc-file-build-errordyld-library-not-loaded-userswinsetefl-tools-buildliblibeio.1.dylib?langswitch=en

 

문제발생환경

OS : Mac OS X El Capitan

SDK : 2.4 Rev.4 를 installer 로 설치 함. 설치 후 update manager통해서 Wearable 2.3.1 SDK를 추가로 install진행함.

설치 경로는 기본값을 변경하여 '/Users/ykernel/workbby/tizen/sdk/' 아래 설치함.

 

SDK콘솔 에러메세지

 01:18:48 **** Build of configuration Debug for project potgear-app-assist ****
ninja all 
[1/21] Building src/WApp.o
...중략...
[20/21] Building res/edje/app-assist-efl.edj
FAILED: edje_cc -deps res/edje/app-assist-efl.edj.d -id "/Users/ykernel/workbby/tizen/PotGear/app-assist/edje/images" -id "/Users/ykernel/workbby/tizen/sdk/tools/enventor/share/enventor/images" -sd "/Users/ykernel/workbby/tizen/PotGear/app-assist/edje/sounds" -sd "/Users/ykernel/workbby/tizen/sdk/tools/enventor/share/enventor/sounds" -fd "/Users/ykernel/workbby/tizen/PotGear/app-assist/edje/fonts" -fd "/Users/ykernel/workbby/tizen/sdk/tools/enventor/share/enventor/fonts" ../res/edje/app-assist-efl.edc res/edje/app-assist-efl.edj
dyld: Library not loaded: /Users/winset/efl-tools-build/lib/libeio.1.dylib
  Referenced from: /Users/ykernel/workbby/tizen/sdk/platforms/tizen-2.3.1/common/efl-tool/efl-tools/bin/edje_cc
  Reason: image not found
ninja: build stopped: subcommand failed.

01:18:55 Build Finished (took 6s.832ms)

 

Native App빌드 할때, edc파일을 edje_cc 통해 컴파일 하는 시점에 에러가 발생합니다.

edje_cc를 실행하는데 필요한 shared library를 못찾는 것 같습니다.

 

해결방법이 있을까요?

 

현재까지 제가 분석한 내용은 아래와 같습니다.

 

1. 콘솔에서 직접 실행해보면 동일하게 library load를 못하는 문제 발생함

 

JeonYoungHoui-MacBook:bin ykernel$ pwd
/Users/ykernel/workbby/tizen/sdk/platforms/tizen-2.3.1/common/efl-tool/efl-tools/bin
JeonYoungHoui-MacBook:bin ykernel$ ./edje_cc
dyld: Library not loaded: /Users/winset/efl-tools-build/lib/libeio.1.dylib
  Referenced from: /Users/ykernel/workbby/tizen/sdk/platforms/tizen-2.3.1/common/efl-tool/efl-tools/bin/./edje_cc
  Reason: image not found
Trace/BPT trap: 5

 

2. otool 을 사용해서 edje_cc 의 shared library 정보를 살펴보면 library path가 하드코딩 된 것처럼 보임

 

SDK 콘솔에서 에러메세지 통해 보았던  /Users/winset/efl-tools-build/lib/ 아래에서 필요한 라이브러리들을 찾도록 path설정되어있네요.

맥용 edje_cc를 빌드할 때, lib path를 혹시 하드코딩 한 것은 아닌지... (만약 맞다면 수정된  edje_cc 를 재배포 받아야 하는건가요?)

JeonYoungHoui-MacBook:bin ykernel$ otool -L edje_cc
edje_cc:
    /Users/winset/efl-tools-build/lib/libeio.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libembryo.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libecore_imf_evas.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libecore_imf.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libecore_input.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libecore_file.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libecore_evas.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libecore.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libevas.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libeet.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libefl.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libeo.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libeina.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libedje.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libecore_con.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /Users/winset/efl-tools-build/lib/libecore_input_evas.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /usr/local/lib/libgthread-2.0.0.dylib (compatibility version 4201.0.0, current version 4201.2.0)
    /usr/local/lib/libglib-2.0.0.dylib (compatibility version 4201.0.0, current version 4201.2.0)
    /usr/local/opt/gettext/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.3.0)
    /usr/local/lib/libfribidi.0.dylib (compatibility version 4.0.0, current version 4.5.0)
    /usr/local/lib/libfontconfig.1.dylib (compatibility version 10.0.0, current version 10.0.0)
    /usr/local/lib/libfreetype.6.dylib (compatibility version 18.0.0, current version 18.4.0)
    /usr/local/lib/libluajit-5.1.2.dylib (compatibility version 2.0.0, current version 2.0.3)
    /Users/winset/efl-tools-build/lib/libector.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    /usr/local/lib/libpng16.16.dylib (compatibility version 33.0.0, current version 33.0.0)
    /usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
    /usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
    /usr/local/lib/libjpeg.8.dylib (compatibility version 13.0.0, current version 13.0.0)
    /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)

 

통상적으로 잘 동작하는 binary를 살펴보면 아래와 같이 상대경로를 찾도록 되어있습니다.

 

JeonYoungHoui-MacBook:bin ykernel$ otool -L dbus-monitor
dbus-monitor:
    @executable_path/../lib/libdbus-1.3.dylib (compatibility version 12.0.0, current version 12.10.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)

 

문제 해결방법을 알고 싶습니다.

감사합니다.

Edited by: Youngho Jeon on 04 Apr, 2016
View Selected Answer

Responses

5 Replies
daniel kim

안녕하세요..

아래와 같이 dylb를 project path에 추가하여 해결한 사례가 있는 데, 아래와 같이 해도 해결이 안되는지요?

    I found where libeio.1.dylb resided on my machine, it happened to be in /Users/[username]/tizen-sdk/platforms/tizen-2.3.1/common/efl-tool/efl-tools/lib

    In my project properties->C/C++ build->Environment, I created my own DYLD_LIBRARY_PATH variable with that path in it.

    Clicked the "Replace native environment with specified one" button.

    Cleaned the project, and it launched without issue.

 https://developer.tizen.org/forums/native-application-development/edc-file-build-errordyld-library-not-loaded-userswinsetefl-tools-buildliblibeio.1.dylib?langswitch=en

Youngho Jeon

안녕하세요..

이미 언급해주신 사례를 읽고 아래 단계를 적용했었으나 해결되지 않습니다... 혹시 제가 잘못 이해하거나 잘못된 방법으로 적용한 것일까요?

 

1. project properties->C/C++ build->Environment 진입 후 아래와 같은 사용자설정 변수 추가함.

DYLD_LIBRARY_PATH  : /Users/ykernel/workbby/tizen/sdk/platforms/tizen-2.3.1/common/efl-tool/efl-tools/lib

2. "Replace native environment with specified one" 체크 선택함

3. clean  project

4. Build project

 

smith256 john

yes can you please tell me your problem.

Youngho Jeon

Hello.

I'm faced with a problem regarding 'Native app build' when I using SDK 2.4 Rev.4.

The problem I'm facing is exactly same this:

=> URL : https://developer.tizen.org/forums/native-application-development/edc-file-build-errordyld-library-not-loaded-userswinsetefl-tools-buildliblibeio.1.dylib?langswitch=en

=> Posting title : edc file build error(dyld: Library not loaded: /Users/winset/efl-tools-build/lib/libeio.1.dylib)

 

It seems be solved by 'Brandon Vandrey', but I couldn't solve the problem by his suggestion.

1. project properties->C/C++ build->Environment 진입 후 아래와 같은 사용자설정 변수 추가함.
DYLD_LIBRARY_PATH  : /Users/ykernel/workbby/tizen/sdk/platforms/tizen-2.3.1/common/efl-tool/efl-tools/lib
2. "Replace native environment with specified one" 체크 선택함
3. clean  project
4. Build project

I'd like to try your suggestion but I don't know exactly how to do it. 
You said as below on that posting
=> Try this one and it will working for me . It seems that edje_cc is not installed on your machine. Modify CMakeLists.txt to add a check for finding edje

I'm wondering 
1. Where is the 'CMakeLists.txt' what you have mentioned.
2. How did you modify the CMakeLists.txt? Could you show me the contents of it?

Regards.

Mark as answer
Youngho Jeon

오늘 배포된  SDK 2.4 Rev.5 를 설치하면 해결되네요.

2.4 Rev.4 에 포함되어있던 edje_cc는 빌드가 잘못된 버전이었던 것 같습니다. dynamic loading library 경로를 절대경로로 빌드했던 버전이 들어있었던 것 같고요.

2.4 Rev.5 에 포함되어 있는 edje_cc를 다시 확인해보니 dynamic loading library 경로를 상대경로로 잘 빌드해서 배포한 것 같네요.

 

결론적으로..

1.  dylb를 프로젝트 property설정에서 path변수 추가한다고 해결된 문제는 아니었던 것 같습니다.

2. smith256 john이 말하는 CMakeLists.txt 를 수정하라는 방법은 정확히 어느경로에 위치한 (사실 SDK에는 CMakeLists.txt 가 존재하지도 않아요..) 파일을 어떻게 수정하라는 건지 몰라서 확인해볼 길이 없네요.

3. 절대경로를 상대경로로 수정해서 빌드한 edje_cc 사용이 답이었던 것 같습니다.

 

JeonYoungHoui-MacBook:bin ykernel$ pwd
/Users/ykernel/workbby/tizen/sdk/platforms/tizen-2.3.1/common/efl-tool/efl-tools/bin

JeonYoungHoui-MacBook:bin ykernel$ otool -L edje_cc
edje_cc:
    @executable_path/../lib/libeio.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libembryo.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libecore_imf_evas.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libecore_imf.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libecore_input.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libecore_file.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libecore_evas.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libecore.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libevas.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libeet.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libefl.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libeo.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libeina.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libedje.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libecore_con.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libecore_input_evas.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libgthread-2.0.0.dylib (compatibility version 4601.0.0, current version 4601.2.0)
    @executable_path/../lib/libglib-2.0.0.dylib (compatibility version 4601.0.0, current version 4601.2.0)
    @executable_path/../lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.4.0)
    @executable_path/../lib/libfribidi.0.dylib (compatibility version 4.0.0, current version 4.5.0)
    @executable_path/../lib/libfontconfig.1.dylib (compatibility version 10.0.0, current version 10.0.0)
    @executable_path/../lib/libfreetype.6.dylib (compatibility version 19.0.0, current version 19.0.0)
    @executable_path/../lib/libluajit-5.1.2.dylib (compatibility version 2.0.0, current version 2.0.3)
    @executable_path/../lib/libector.1.dylib (compatibility version 15.0.0, current version 15.0.0)
    @executable_path/../lib/libpng16.16.dylib (compatibility version 37.0.0, current version 37.0.0)
    /usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
    /usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 0.9.8)
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
    @executable_path/../lib/libjpeg.8.dylib (compatibility version 13.0.0, current version 13.0.0)
    /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)