即使这似乎是多余的工作,我相信在这种情况下,一种适当的解决方案是使用工具链文件。 就像是:
# the name of the target operating system
set(CMAKE_SYSTEM_NAME Linux)
# which compilers to use for C and C++
set(CMAKE_C_COMPILER gcc)
set(CMAKE_C_FLAGS -m32)
set(CMAKE_CXX_COMPILER g++)
set(CMAKE_CXX_FLAGS -m32)
# here is the target environment located
set(CMAKE_FIND_ROOT_PATH /usr/i486-linux-gnu )
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
然后用法很简单:
$ cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake /path/to/source
此处的重要部分是,现在可以指定一个根目录路径(CMAKE_FIND_ROOT_PATH),该路径应用于搜索第三方lib。 确实,您的编译器可能不够聪明,无法知道在x86_64系统上在哪里搜索x86 Qt库。
拥有一个工具链文件可以使一个人在par编译器的基础上指定一个不同的文件,并且在从Windows环境以32位编译时,您应该能够对该选项进行调整。
如今,这是多余的工作,因为从x86_64 Linux操作系统编译32位几乎是微不足道的,但是该解决方案可用于其他更特殊的设置。
有关工具链文件的更多信息,可以检查例如:
[http://www.cmake.org/Wiki/CmakeMingw]