2015-02-23 100 views
0

我確實需要在我的項目中包含「交叉編譯」(英特爾和PowerPC),並且我發現了定義目標的問題。我有以下文件夾結構:交叉編譯CMakelists.txt文件的問題

  • 的* .h

  • *的.cpp

  • 的CMakeLists.txt

SRC

  • 的* .h

  • *的.cpp

  • 的CMakeLists.txt

...

-CMakeLists.txt

如果編寫以下src文件夾的CMakeLists.txt中的一段代碼,它可以工作...

ADD_EXECUTABLE(intel ${SOURCES}) SET_TARGET_PROPERTIES(intel PROPERTIES OUTPUT_NAME ${APP_NAME}_INTEL EXCLUDE_FROM_ALL true) TARGET_LINK_LIBRARIES(intel ${LIBS_INTEL} ) 

但是我真的不知道如何在庫(libs文件夾)的CMakeLists中做到這一點。如果我遵循相同的結構並使用「intel」作爲目標,它將返回一條錯誤消息,指出「目標名稱已被使用」。

我確實想編譯我用這兩個選項的所有項目:

「讓英特爾」 - >生成Intel版本和「做的PowerPC」 - >產生的PowerPC版本

我一直在互聯網上尋找它,但我找不到一個正確的解決方案。

我希望任何人都可以幫助我。

回答

0

最後我找到了解決方案。這與在主CMakeLists.txt文件中使用以下宏一樣簡單。

ADD_CUSTOM_TARGET(INTEL DEPENDS EXECUTABLE1 EXECUTABLE2 ... EXECUTABLEN)

,並與其他目標的PowerPC相同。