1

Qt3のuicを呼び出そうとしています(レガシーコードを維持しています)が、そうできません.以下は私のmakeファイルです

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 gui の構成ボタンをクリック)、メッセージが表示されます

src/CMakeLists.txt:21 (add_custom_command) の CMake 警告 (dev):
ポリシー CMP0040 が設定されていません: add_custom_command() の TARGET 署名のターゲット
が存在する必要があります。ポリシーの詳細については、「cmake --help-policy CMP0040」を実行してください。cmake_policy コマンドを使用してポリシーを設定し、この警告を抑制します。

このコンテキストでは、ターゲット名「uic.exe」は不明です。この警告は、プロジェクト開発者向けです。-Wno-dev を使用して抑制します。

cmakeでuic.exeにuiファイルを生成させるにはどうすればよいですか?

ps : find_package コマンドが機能しないため、ui および moc ファイルを生成する簡単な関数を書きたいと思います。CMAKE_PREFIX_PATH を設定しようとしましたが、うまくいきません

#set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "${Qt3Dir}")
4

2 に答える 2

0

私の頭に浮かぶ唯一のことは、cmakeがuic.exeを見つけることができないということです

最初にフルパスで試してください。動作する場合は、「uic.exe」に戻り、その場所を cmake に相当する Linux PATH に追加してみてください。

于 2015-03-26T09:34:18.480 に答える