2011-12-11 34 views
7

Tôi đang cố gắng sử dụng dự án Xcode Tạo ra CMake. Mọi thứ có vẻ tốt khi xây dựng, ngoại trừ Xcode không thể tìm thấy các tập tin nhị phân được xây dựng. Dưới đây là một ảnh chụp màn hình tôi chụp sau khi xây dựng thành công sản phẩm. Tôi có thể thấy chúng trong thư mục nguồn dự án. Tuy nhiên, lưu ý rằng Xcode hiển thị RED "HelloWorld", có nghĩa là nó không thể tìm thấy sản phẩm.Dự án Xcode tạo ra CMake không tìm thấy nhị phân "Sản phẩm" được xây dựng từ Xcode

Screenshot of Products not available showing Red

Configurations: CMake 2.8.6 với Xcode 4.2 trên Lion 10.7.2

Đây là CMakeLists.txt

project(HelloWorld) 

add_executable(${PROJECT_NAME} HelloWorld.cpp) 

Đây là mã nguồn cho HelloWorld.cpp

#include <iostream> 

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

    return 0; 
} 

Tôi đã cố tạo một dự án thô trực tiếp từ Xcode, sau khi biên dịch, các sản phẩm cho thấy màu đen thay vì phông chữ màu đỏ, có nghĩa là Xcode tìm thấy các sản phẩm. Vì vậy, tôi chắc chắn điều này có liên quan đến dự án CMake Generated Xcode.

Bất kỳ ai có ý tưởng nào? làm thế nào để sửa lỗi này?

+0

Mục tiêu của bạn ở đây là ngăn Xcode không hiển thị tên sản phẩm màu đỏ hoặc có vấn đề gì nữa không? Xcode không thể tìm thấy nhị phân khi bạn thực hiện nó trong trình gỡ lỗi, chẳng hạn? – sjs

+0

Đó là một vấn đề mà tôi đang gặp phải. Xcode không thể xây dựng sản phẩm nếu dự án Xcode được tạo bởi CMake. –

+0

Để trả lời câu hỏi thứ hai của bạn, vâng. nhị phân được xây dựng và tôi có thể thấy nó trong thư mục nguồn. Nhưng Xcode không thể thực thi nó. –

Trả lời

1

Hồ sơ dự án xcode (mà tôi đoán, trong trường hợp của bạn sẽ được đặt tên là cái gì đó như HelloWorld.xcproject/project.pbxproject, sẽ có định nghĩa SYMROOT cho từng xây dựng cấu hình cho mỗi mục tiêu.
Bạn có thể thay đổi tất cả các định nghĩa SYMROOT với giá trị tương tự hoặc xóa tất cả những thứ đó (xcode sẽ mặc định là "xây dựng").
Dự án, nếu mở, nên tự động tải. Chọn ALL_BUILD hoặc HelloWord, hãy làm sạch và xây dựng

Không chắc chắn đó có phải là vấn đề không SYMROOT
Lưu ý: Tôi biết điều này chỉ gợi ý những gì vấn đề có thể và không phải là một giải pháp nhưng tôi không được phép thêm bình luận :)

1

Tôi gặp vấn đề tương tự. Đối với tôi, nó được gây ra bởi một thư mục "xây dựng" phụ trong đường dẫn tìm kiếm mà Xcode đang sử dụng để tìm sản phẩm. Tôi đã tấn công xung quanh vấn đề bằng cách đặt các sản phẩm vào vị trí Xcode mong đợi, tức là tôi đã thêm thư mục "build" bổ sung .:

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() 
Các vấn đề liên quan