OS X (기본적으로 번들/DyLib)에서 포토샵 플러그인을 만들고 있습니다.
저는 인텔 컴파일러를 사용 중이며 OpenMP (libiomp5
)와 연결하여 OpenMP를 사용합니다.
정적 링크를 사용하면 Photoshop이 충돌합니다 (Windows OS X에서만 작동).
그래서 동적 연결을 시도했습니다.플러그인 검색 경로 설정 (번들/DyLib)
호스트 인 Photoshop은 자신의 프레임 워크 폴더에있는 libiomp5.dylib
을 사용합니다.
그래서 Xcode에서 링크 파트를 Runpath Search Paths
에서 @executable_path/../Frameworks/
으로 설정했지만 포토샵에서로드하려고하면 작동하지 않습니다.
Runpath Search Paths
을 Intel Run Time Redistributable Libraries (Photoshop의 프레임 워크 라이브러리와 마찬가지로 MacDependency에 따라 플러그 인에 필요한 모든 DyLib가 포함되어 있음)으로 설정하려고했으나 여전히 Photoshop에는로드되지 않습니다. 내가 otool -L가 플러그에에 사용하는 경우
, 내가 얻을 :
Load command 6
cmd LC_UUID
cmdsize 24
uuid B61F2961-AD6D-30B9-AF58-C67689731966
Load command 7
cmd LC_VERSION_MIN_MACOSX
cmdsize 16
version 10.7
sdk 10.10
Load command 8
cmd LC_LOAD_DYLIB
cmdsize 88
name /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (offset 24)
time stamp 2 Thu Jan 1 02:00:02 1970
current version 157.0.0
compatibility version 2.0.0
Load command 9
cmd LC_LOAD_DYLIB
cmdsize 40
name libimf.dylib (offset 24)
time stamp 2 Thu Jan 1 02:00:02 1970
current version 0.0.0
compatibility version 0.0.0
Load command 10
cmd LC_LOAD_DYLIB
cmdsize 40
name libsvml.dylib (offset 24)
time stamp 2 Thu Jan 1 02:00:02 1970
current version 0.0.0
compatibility version 0.0.0
Load command 11
cmd LC_LOAD_DYLIB
cmdsize 40
name libirng.dylib (offset 24)
time stamp 2 Thu Jan 1 02:00:02 1970
current version 0.0.0
compatibility version 0.0.0
Load command 12
cmd LC_LOAD_DYLIB
cmdsize 40
name libiomp5.dylib (offset 24)
time stamp 2 Thu Jan 1 02:00:02 1970
current version 5.0.0
compatibility version 5.0.0
Load command 13
cmd LC_LOAD_DYLIB
cmdsize 48
name /usr/lib/libc++.1.dylib (offset 24)
time stamp 2 Thu Jan 1 02:00:02 1970
current version 120.0.0
compatibility version 1.0.0
Load command 14
cmd LC_LOAD_DYLIB
cmdsize 56
name /usr/lib/libSystem.B.dylib (offset 24)
time stamp 2 Thu Jan 1 02:00:02 1970
current version 1213.0.0
compatibility version 1.0.0
Load command 15
cmd LC_LOAD_DYLIB
cmdsize 40
name libintlc.dylib (offset 24)
time stamp 2 Thu Jan 1 02:00:02 1970
current version 1.13.0
compatibility version 1.0.0
Load command 16
cmd LC_LOAD_DYLIB
cmdsize 104
name /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (offset 24)
time stamp 2 Thu Jan 1 02:00:02 1970
current version 62.0.0
compatibility version 1.0.0
Load command 17
cmd LC_RPATH
cmdsize 48
path @executable_path/../Frameworks/ (offset 12)
Load command 18
cmd LC_FUNCTION_STARTS
cmdsize 16
dataoff 3486976
datasize 5616
Load command 19
cmd LC_DATA_IN_CODE
cmdsize 16
dataoff 3492592
datasize 0
경우 : 나는 내가 엑스 코드에 삽입하는 것을 볼 않는 플러그에 otool -l
을 시도
/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 157.0.0)
libimf.dylib (compatibility version 0.0.0, current version 0.0.0)
libsvml.dylib (compatibility version 0.0.0, current version 0.0.0)
libirng.dylib (compatibility version 0.0.0, current version 0.0.0)
libiomp5.dylib (compatibility version 5.0.0, current version 5.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
libintlc.dylib (compatibility version 1.0.0, current version 1.13.0)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 62.0.0)
나는 Runpath Search Paths
을 Intel Run Time Redistributable Libraries으로 설정했다. 적절한 경로를 보았지만 결과는 같다.
누구든지 저를 도와 줄 수 있습니까?
저는 개발자가 아니기 때문에 단계적으로 좋을 것입니다.
참조 - http://qin.laya.com/tech_coding_help/dylib_linking.html – Royi
참조 - http://stackoverflow.com/questions/33991581/install-name-tool-to-update -a-executable-to-dylib-in-mac-os-x – Royi
참조 - http://thecourtsofchaos.com/2013/09/16/how-to-copy-and-relink-binaries-on -osx/ – Royi