簡體   English   中英

CMake生成的Xcode項目無法找到從Xcode構建的二進制“產品”

[英]CMake generated Xcode project fails to find the binary “Products” that are built from Xcode

我正在嘗試使用CMake Generated Xcode項目。 構建時一切看起來都很好,除了Xcode找不到構建的二進制文件。 下面是我成功構建產品后的截圖。 我可以在項目源目錄中看到它們。 但是,請注意Xcode顯示RED“HelloWorld”,這意味着它無法找到產品。

顯示紅色的產品截圖

配置:在Lion 10.7.2上使用Xcode 4.2進行CMake 2.8.6

這是CMakeLists.txt

project(HelloWorld)

add_executable(${PROJECT_NAME} HelloWorld.cpp)

這是HelloWorld.cpp的源代碼

#include <iostream>

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

    return 0;
}

我試圖直接從Xcode創建一個原始項目,編譯后,產品顯示黑色而不是紅色字體,這意味着Xcode找到了產品。 所以我相信這與CMake Generated Xcode項目有關。

有人有任何想法嗎? 怎么解決這個問題?

我遇到過同樣的問題。 對我來說,這是由Xcode用於查找產品的搜索路徑中的額外“構建”目錄引起的。 我通過將產品放在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()

xcode項目文件(我猜,在你的情況下會被命名為HelloWorld.xcproject/project.pbxproject ,它將為每個目標的每個構建配置提供SYMROOT定義。
您可以將所有SYMROOT定義更改為相同的值,也可以刪除所有這些定義(xcode將默認為“build”)。
項目,如果打開,應自動加載。 選擇ALL_BUILD或HelloWord,清理並構建。

不確定cmake添加SYMROOT的方式是否存在問題。
注意:我知道這只是暗示問題可能是什么而不是解決方案但是不允許添加評論:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM