2015-02-23 91 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相同。