के साथ मैकोज़ फ्रेमवर्क को लिंक नहीं कर सकता है, मैं सेमीकेक के साथ एक सबप्रोजेक्ट बनाने की कोशिश कर रहा हूं (यह एक xcode प्रोजेक्ट या आईफोन के लिए ऐप भी नहीं है, नतीजा क्रॉस-प्लेटफॉर्म कंसोल निष्पादन योग्य है, जिसमें # कुछ विरासत शामिल हैं http://www.vtk.org/Wiki/CMake:HowToUseExistingOSXFrameworksसीएमके
और इस मैक्रो:
macro(ADD_FRAMEWORK fwname appname)
find_library(FRAMEWORK_${fwname}
NAMES ${fwname}
PATHS ${CMAKE_OSX_SYSROOT}/System/Library
PATH_SUFFIXES Frameworks
NO_DEFAULT_PATH)
if(${FRAMEWORK_${fwname}} STREQUAL FRAMEWORK_${fwname}-NOTFOUND)
MESSAGE(ERROR ": Framework ${fwname} not found")
else()
TARGET_LINK_LIBRARIES(${appname} ${FRAMEWORK_${fwname}})
MESSAGE(STATUS "Framework ${fwname} found at ${FRAMEWORK_${fwname}}")
endif()
endmacro(ADD_FRAMEWORK)
यह सीएमए में महत्वपूर्ण हिस्सा है सी ++ सार कक्षाएं, में उद्देश्य-C++)
लिखा से मैं मैक ओएस चौखटे से जोड़ने के लिए इस गाइड का उपयोग कर रहा keLists.txt
project(myprojectname)
........
add_executable(mytarget src/mytarget.cpp)
add_framework(CoreMedia mytarget)
add_framework(CoreVideo mytarget)
add_framework(AVFoundation mytarget)
add_framework(Foundation mytarget)
........
और वह है क्या मैं जब बनाने की कोशिश है:
WARNING: Target "mytarget" requests linking to directory "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Frameworks/CoreMedia.framework". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "mytarget" requests linking to directory "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Frameworks/CoreVideo.framework". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "mytarget" requests linking to directory "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Frameworks/AVFoundation.framework". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "mytarget" requests linking to directory "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Frameworks/Foundation.framework". Targets may link only to libraries. CMake is dropping the item.
यह वास्तव में इन सभी व्यवस्थाएं पाता है, लेकिन लिंक नहीं कर सकते, जो लिंकर त्रुटियों की एक बहुत कुछ पैदा करता है। मुझे पूरा यकीन है कि यही कारण है क्योंकि मैंने एक्सकोड का उपयोग करके टेस्टप्रोजेज बनाया है और इसमें वही त्रुटियां हैं जब तक कि मैं सभी आवश्यक ढांचे को जोड़ता हूं।
जब मैं सिर्फ
FIND_LIBRARY(COREMEDIA_LIB CoreMedia)
...
तो COREMEDIA_LIB
NOTFOUND
पर सेट किया जाता का उपयोग करें - क्या हो रहा है? :।/
मैं एक बहुत लेकिन कुछ नहीं लग रहा है :(काफी वहाँ खो
ठीक है, इसे 'सेट (CMAKE_EXE_LINKER_FLAGS "-framework fm1-framework fm2 के साथ काम कर रहा है ..." ' http://stackoverflow.com/questions/822404/ क्यों नहीं है कैसे-टू-सेट-अप-सेमेक-टू-बिल्ड-ए-ऐप-द-आईफोन तरीके काम करते हैं? (उस मैक्रो के साथ उत्तर मैं वास्तव में उपयोग करने की कोशिश कर रहा हूं) – dreamzor