Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 如何设置cmake/qt4命令qt4\u WRAP\u UI的输出路径_User Interface_Qt4_Cmake - Fatal编程技术网

User interface 如何设置cmake/qt4命令qt4\u WRAP\u UI的输出路径

User interface 如何设置cmake/qt4命令qt4\u WRAP\u UI的输出路径,user-interface,qt4,cmake,User Interface,Qt4,Cmake,我使用cmake命令QT4\u WRAP\u UI。是否有控制生成的头文件的输出路径的选项?以下是QT4\u WRAP\u UI源代码: MACRO (QT4_WRAP_UI outfiles ) QT4_EXTRACT_OPTIONS(ui_files ui_options ${ARGN}) FOREACH (it ${ui_files}) GET_FILENAME_COMPONENT(outfile ${it} NAME_WE) GET_FILENAME_COMPO

我使用cmake命令QT4\u WRAP\u UI。是否有控制生成的头文件的输出路径的选项?

以下是
QT4\u WRAP\u UI
源代码:

MACRO (QT4_WRAP_UI outfiles )
  QT4_EXTRACT_OPTIONS(ui_files ui_options ${ARGN})

  FOREACH (it ${ui_files})
    GET_FILENAME_COMPONENT(outfile ${it} NAME_WE)
    GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE)
    SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/ui_${outfile}.h) # Here we set output
    ADD_CUSTOM_COMMAND(OUTPUT ${outfile}
      COMMAND ${QT_UIC_EXECUTABLE}
      ARGS ${ui_options} -o ${outfile} ${infile}
      MAIN_DEPENDENCY ${infile})
    SET(${outfiles} ${${outfiles}} ${outfile})
  ENDFOREACH (it)

ENDMACRO (QT4_WRAP_UI)

如您所见,
outfile
变量是从
CMAKE\u CURRENT\u BINARY\u DIR
变量构建的。您可以创建一个将替换该行的自定义宏。

您只需将
${CMAKE\u CURRENT\u BINARY\u DIR}
添加到include DIR:

include_directories(${CMAKE_CURRENT_BINARY_DIR})

我必须找到解决办法。我确实创建了一个自定义宏,但我认为如果cmake upstream中的宏能够自动处理这个问题会更好


请参阅我的建议

问题是是否可以控制
QT4\u WRAP\u UI
宏的输出路径。因此,包含生成文件的默认目录并不能解决这个问题。