2011-12-11 12 views
7

से बने बाइनरी "उत्पाद" को खोजने में विफल रहता है, मैं सीएमके जेनरेटेड एक्सकोड प्रोजेक्ट का उपयोग करने की कोशिश कर रहा हूं। निर्माण करते समय सबकुछ अच्छा दिखता है, सिवाय इसके कि एक्सकोड निर्मित बाइनरी नहीं ढूंढ सकता है। नीचे एक स्क्रीनशॉट है जिसे मैंने सफलतापूर्वक उत्पाद बनाने के बाद लिया था। मैं उन्हें प्रोजेक्ट स्रोत निर्देशिका में देख सकता हूं। हालांकि, ध्यान दें कि एक्सकोड लाल "हैलोवर्ल्ड" दिखा रहा है, जिसका अर्थ है कि यह उत्पाद नहीं ढूंढ सकता है।सीएमके जेनरेट किया गया एक्सकोड प्रोजेक्ट एक्सकोड

Screenshot of Products not available showing Red

विन्यास: CMake 2.8.6 Xcode 4.2 के साथ शेर 10.7.2 पर

यह इस HelloWorld.cpp

के लिए स्रोत कोड है CMakeLists.txt

project(HelloWorld) 

add_executable(${PROJECT_NAME} HelloWorld.cpp) 

है

#include <iostream> 

int main(){ 
    std::cout << "HelloWorld!" << std::endl; 

    return 0; 
} 

मैंने सीधे एक्सकोड से कच्ची परियोजना बनाने की कोशिश की, संकलन के बाद, उत्पाद लाल फ़ॉन्ट के बजाय काले दिखाते हैं, जिसका अर्थ है कि एक्सकोड उत्पादों को मिला। तो मुझे यकीन है कि यह सीएमके जेनरेटेड एक्सकोड परियोजना से संबंधित है।

किसी को भी कोई विचार है? इसे कैसे ठीक करें?

+0

अपने लक्ष्य को यहाँ केवल लाल रंग में उत्पाद नाम प्रतिपादन से Xcode बंद करें, या कर रहे हैं करने के लिए है जोड़ा वहाँ अन्य समस्याएं भी हैं? क्या एक्सकोड बाइनरी को खोजने में असमर्थ है जब आप इसे डीबगर में निष्पादित करने के लिए जाते हैं, उदाहरण के लिए? – sjs

+0

यह एक समस्या है जिसे मैं अनुभव कर रहा हूं। यदि एक्सकोड परियोजना सीएमके द्वारा उत्पन्न की जाती है तो एक्सकोड उत्पाद का निर्माण करने में सक्षम नहीं है। –

+0

अपने दूसरे प्रश्न का उत्तर देने के लिए, हाँ। बाइनरी बनाया गया है और मैं इसे स्रोत निर्देशिका में देख सकता हूं। लेकिन एक्सकोड इसे निष्पादित करने में सक्षम नहीं है। –

उत्तर

1

xcode प्रोजेक्ट फ़ाइल (जो मुझे लगता है कि, आपके मामले में HelloWorld.xcproject/project.pbxproject की तरह कुछ नामित किया जाएगा, लक्ष्य के अनुसार निर्माण विन्यास से प्रत्येक के लिए SYMROOT परिभाषाओं होगा।
आप या तो एक ही मूल्य के लिए सभी SYMROOT परिभाषाओं को बदल सकते हैं या उन सभी, अगर खुला, autoreload चाहिए (xcode "का निर्माण" लागू हो जाएगी)।
परियोजना। ALL_BUILD या HelloWord, स्वच्छ का चयन करें और निर्माण।

सुनिश्चित नहीं हैं कि अगर यह तरीका cmake कहते हैं के साथ एक मुद्दा है को दूर SYMROOT।
नोट: मुझे यह पता है कि समस्या क्या हो सकती है और समाधान नहीं, लेकिन अभी तक टिप्पणियां जोड़ने की अनुमति नहीं है :)

1

मुझे एक ही समस्या थी। मेरे लिए यह उत्पाद पथ खोजने के लिए खोज पथ एक्सकोड का उपयोग कर अतिरिक्त "बिल्ड" निर्देशिका के कारण हुआ था। मैं स्थान Xcode उम्मीद में उत्पादों डाल कर समस्या को हल काट दिया, यानी मैं अतिरिक्त "का निर्माण" निर्देशिका .:

if(CMAKE_GENERATOR STREQUAL Xcode) 
    set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/build/Debug) 
    set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/build/Release) 
    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/build/Debug) 
    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/build/Release) 
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/build/Debug) 
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/build/Release) 
endif() 
संबंधित मुद्दे