Can I skip cmake compiler tests or avoid “error: unrecognized option '-rdynamic'”

前端 未结 5 1592
[愿得一人]
[愿得一人] 2021-02-02 08:11

compilation options for cmake (on windows) for ARM target system but when I run configure it\'s starting compiler tests:

CMake Error at D:/Program Files/CMake 2.         


        
5条回答
  •  南旧
    南旧 (楼主)
    2021-02-02 08:47

    It seems you target actually something else than Linux, so you should tell cmake that you are cross-compiling for the generic case:

    SET(CMAKE_SYSTEM_NAME Generic)
    

    Followed by (optionally, but nice to specify):

    SET(CMAKE_SYSTEM_PROCESSOR arm)
    SET(CMAKE_CROSSCOMPILING 1)
    

    However, if you specify (which you likely did because this is stated in a lot of examples online):

    SET(CMAKE_SYSTEM_NAME Linux)
    

    Then cmake will load the configuration files from (suppose version 2.8) the file:

    /usr/share/cmake-2.8/Modules/Platform/Linux.cmake
    

    from which it is likely to load:

    /usr/share/cmake-2.8/Modules/Platform/Linux-GNU.cmake
    

    Here the -rdynamic flag is set for historical reasons:

    macro(__linux_compiler_gnu lang)
      # We pass this for historical reasons.  Projects may have
      # executables that use dlopen but do not set ENABLE_EXPORTS.
      set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-rdynamic")
    endmacro()
    

    Rather than disabling the tests as indeed is done by specifying NONE as the PROJECT argument, it seems setting the CMAKE_SYSTEM_NAME (to something else than Linux, for instance Generic) is what you actually want to do.

提交回复
热议问题