首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过cmake执行exe(uic Qt3)?

如何通过cmake执行exe(uic Qt3)?
EN

Stack Overflow用户
提问于 2015-03-26 07:22:52
回答 2查看 411关注 0票数 1

我正在尝试调用Qt3的uic (维护遗留代码),但未能执行so.Following是我的make文件。

代码语言:javascript
复制
project(testQt3)
cmake_minimum_required(VERSION 2.8.11)

set(PROJECT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../project)
set(PROJECT_ARCH $ENV{MAKEOBJDIR})

set(CMAKE_BUILD_TYPE Release)

aux_source_directory(. SRC_LIST)

add_executable(${PROJECT_NAME} ${SRC_LIST})  

set(Qt3DirPath ${PROJECT_PATH}/qt/${PROJECT_ARCH})
set(Qt3LibPath ${Qt3DirPath}/lib)        
set(Qt3Libs ${Qt3LibPath}/qt-mt338.lib ${Qt3LibPath}/qtmain.lib)   

add_custom_command(TARGET uic.exe
    PRE_BUILD
    COMMAND  ${CMAKE_CURRENT_SOURCE_DIR}/../data/import_card_info.ui -o ${CMAKE_CURRENT_SOURCE_DIR}/../incl/import_card_info_ui.h
    WORKING_DIRECTORY ${Qt3DirPath}/bin
)       

target_link_libraries(${PROJECT_NAME} ${Qt3Libs})

当我运行cmake (单击cmake上的配置按钮)时,它会给我消息。

CMake警告(dev):src/CMakeLists.txt:21 (add_custom_command): 策略CMP0040未被设置: add_custom_command()必须存在。运行"cmake --help-policy CMP0040“以获取策略细节。使用cmake_policy命令设置策略并取消此警告。 在这个上下文中,目标名称"uic.exe“是未知的。此警告是针对项目开发人员的。使用-Wno-dev来抑制它。

如何让uic.exe通过cmake为我生成ui文件?

ps : find_package命令不能工作,这就是为什么我想编写一个简单的函数来为我生成ui和moc文件。我尝试设置CMAKE_PREFIX_PATH,但它也不起作用。

代码语言:javascript
复制
#set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "${Qt3Dir}")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-27 01:24:05

我找出了为什么cmake要生成一个makefile (通过set_custom_target调用exe设置),我必须添加一个命令

代码语言:javascript
复制
add_dependencies(${PROJECT_NAME} uic)
票数 0
EN

Stack Overflow用户

发布于 2015-03-26 09:34:18

我唯一想到的就是cmake找不到uic.exe

先尝试完整的路径。如果成功,请返回"uic.exe“,并尝试将其位置添加到相当于cmake的linux路径中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29272949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档