나는이처럼 보이는 내 FireBreath 플러그인의 맥 빌드 링크 오류가 점점 오전 :FireBreath 맥 OS X 재단
Undefined symbols for architecture x86_64:
"_IOIteratorNext", referenced from:
MyFunction(...) in MyFile.o
날이 링크 오류를 해결하는 데 도움이 바랍니다.
나는 "_IOObjectRelease", "_IORegistryEntryCreateCFProperty", "_IORegistryEntryGetParentEntry", "_IOServiceGetMatchingServices", "_IOServiceMatching", and "_kIOMasterPortDefault"
와 비슷한 오류를 가지고 있습니다. 이것은 Frameworks IOKIT 및 COREFOUNDATION을 포함해야한다고 생각합니다.
- 을 프로젝트 탐색기에서 프로젝트를 선택 :
나는이 내가 일시적으로 빌드는 다음과 같이 엑스 코드에 직접 추가하여 성공을 얻을 수 있기 때문에 내가 필요로하는 프레임 워크가 있다는 결론을 내렸다.
- 대상을 선택하십시오.
- '빌드 단계'탭을 선택하십시오.
- '라이브러리와 함께 바이너리 연결'확장기를 엽니 다 ( '빌드 단계 추가'를 사용해야 할 수도 있음).
- 각 프레임 워크를 추가하려면 '+'버튼을 한 번 클릭하십시오.
Xcode를 통해 프레임 워크를 추가하면 빌드가 성공합니다. 그러나 prep 스크립트 'prepmac.sh'가 다시 실행되면 프레임 워크가 손실되고 빌드가 실패합니다.
나는 PluginConfig.cmake 및 Mac/projectDef.cmake를 편집하여 FireBreath를 통해 프레임 워크를 추가하는 방법을 시도해 보았으며 CMakeLists.txt를 수정하는 것도 고려해 보았습니다.하지만 이것은 유망하지 않습니다.
나는 두 .cmake
파일 내에서 다양한 조합에 다음 문을 시도했다, 그러나 나는 그들을 넣을 수있는 위치에 대한 확신하지 않다 : 변경의
find_library(IOKIT_FRAMEWORK IOKit)
message("Finding library IOKit: ${IOKIT_FRAMEWORK}")
find_library(COREFOUNDATION_FRAMEWORK CoreFoundation)
message("Finding library CoreFoundation: ${COREFOUNDATION_FRAMEWORK}")
target_link_libraries(${PROJECT_NAME}
${COREFOUNDATION_FRAMEWORK}
${IOKIT_FRAMEWORK}
${PLUGIN_INTERNAL_DEPS}
)
없음 빌드 로그를 변경하려면 보이지 않는다.
Finding library IOKit: /System/Library/Frameworks/Cocoa.framework
Finding library CoreFoundation: /System/Library/Frameworks/CoreFoundation.framework
솔루션을 : 솔루션이었다 taxilian 조언을 바탕 물론 나는 새로운 '메시지'문을보고있는 "prepmac.sh"과 변화 사이의 프로젝트를 생성하고 둘 다 Mac/projectDef.cmake에서 올바른 프레임 워크를 올바르게 지정하고 build 디렉토리를 완전히 삭제하고 prepmac.sh 스크립트로 처음부터 다시 작성하십시오.
친애하는 택시 기사, 빠른 답변 주셔서 감사합니다! 예, 저는 이미 "get_link_libraries"에 프레임 워크를 추가했지만 "find_library"명령은 "add_mac_plugin"이전이 아니었고 내 기초 이름의 대소 문자가 제안 사항과 일치하지 않았습니다. 그러나 이러한 변화는 도움이되지 못했습니다. 프레임 워크 이름을 추측 했으므로 정확하지 않을 수 있습니다. 더 이상의 아이디어? –
다음과 같은 줄을 추가하십시오 : message ("라이브러리 찾기 IOKit : $ {IOKIT_FRAMEWORK}") - 라이브러리를 찾았는지 여부를 보여줍니다. 그렇지 않다면, – taxilian
prepmac.sh가 그 둘 모두를 찾은 것 같습니다 : 라이브러리 찾기 IOKit : /System/Library/Frameworks/Cocoa.framework 라이브러리 찾기 CoreFoundation :/System/Library/프레임 워크/CoreFoundation.framework. 나는 이것이 내 특별한 Link 오류에 필요한 기반이라고 확신하지 못한다. –