cmake常见问题设置

1、设置程序以管理员的方式启动

        SET( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /level='requireAdministrator' /uiAccess='false'" )

2、解决CMP0020警告

        根据官方文档的解释,如下: 

        CMP0020
              Automatically link Qt executables to qtmain target on Windows.

              CMake 2.8.10 and lower required users of Qt to always specify  a
              link  dependency  to  the  qtmain.lib static library manually on
              Windows.  CMake 2.8.11 gained the ability to evaluate  generator
              expressions   while   determining  the  link  dependencies  from
              IMPORTED targets.  This allows  CMake  itself  to  automatically
              link executables which link to Qt to the qtmain.lib library when
              using IMPORTED Qt targets.  For applications already linking  to
              qtmain.lib,  this  should  have little impact.  For applications
              which supply their own alternative  WinMain  implementation  and
              for applications which use the QAxServer library, this automatic
              linking will need to be disabled as per the documentation.

              The OLD behavior for this policy is not to link  executables  to
              qtmain.lib  automatically when they link to the QtCore IMPORTED-
              target.  The NEW behavior for this policy is to link executables
              to  qtmain.lib  automatically  when they link to QtCore IMPORTED
              target.

              This policy was introduced in CMake version 2.8.11.  CMake  ver-
              sion  2.8.12.1  warns  when  the  policy is not set and uses OLD
              behavior.  Use the cmake_policy command to set it to OLD or  NEW
              explicitly.

方法1:CMAKE_POLICY(SET CMP0020 NEW)

方法2:修改CMakeLists.txt文件,设置cmake的最低版本要求,至少为2.8.11


3、对于Qt程序,error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用

       这是在设置子系统为窗口 (/SUBSYSTEM:WINDOWS)才会出现,正是由于没有采用新的行为,即没有自动链接qtmain.lib。解决的办法可以用《解决CMP0020警告》的方法,也可以手动的链接该lib库.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值