Cài đặt opencv với QT in windows (Error chmod is not recognized as internal ...)

Em đang cài opencv bản 3.4.7 dùng cmake và qt build. Nhưng khi tới bước cài 31% thì bị lỗi như hình. Em có tìm hiểu trên mạng thì có hướng dẫn cách fix nhưng đọc hoài không biết chỉnh file nào trong build folder opencv. Link hướng dẫn https://blog.huihut.com/2017/12/03/CompiledOpenCVRunInQt/
Em không biết về Cmake nên mong mọi người đọc và có thể hướng dẫn em cần chỉnh file nào không? Em chân thành cảm ơn.

image

Sao bạn ko down file về mà cài cho dễ ?
https://opencv.org/releases/

3 Likes

Em cần build source opencv và sử dụng cho QT a.

Thì bạn cứ cài rồi sau đó qt cần gì tiếp thì setup môi trường thôi, chứ bạn down về build từ souce thì cũng khác gì down về cài đâu.

2 Likes

em không hiểu ý anh. Em cài thì nó extra ra 1 folder opencv nếu sử dụng VC++ thì option rất dễ còn dùng QT thì trên mạng y/c build nó lại. Link: https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows
Anh có thể giải thích rõ cho em hiểu không ạ.
Và theo trang này em đọc thì do opencv không build cho QT nên ta phải tự build link: https://blog.huihut.com/2017/12/03/CompiledOpenCVRunInQt/

Thông thường các thư viện điều có dynamic library cho ffi mà.

4 Likes

Trước khi link nó cũng đã build lại = Qt luôn rồi anh. :grinning:

Vậy bạn đã xử lý đc bằng cách nào post lên đây hôm sau có ai cần thì đỡ phải mò?

3 Likes

Em đã qua đc ải này rồi nhưng vướng ải khác nữa rồi anh.
Em có đọc tài link thì do thằng cmake của opencv dùng lệnh linux “chmod” để cài file sau khi make -> windows không hiểu -> vào file opencv\sources\cmake(file extra có đc). Tìm file OpenCVPCHSupport.cmake. Tìm chỉnh lại code (từ khóa search chmod) rồi config lại(anh có thể hướng dẫn và fix chỉnh giao diện code trên daynhauhoc để code dễ nhìn ?) Đây là link fix(code alalek viết thiếu dấu “)” -> cmake out function -> code em đã chỉnh rồi): https://github.com/opencv/opencv/pull/15433/commits/21bd098a84fd1ed24ee573d85a87d34821f7c198

Code cần tìm:

${_command} '-D$<JOIN:$<TARGET_PROPERTY:${_targetName},COMPILE_DEFINITIONS>,' '-D>'
")
    GET_FILENAME_COMPONENT(_outdir ${_output} PATH)
    ADD_CUSTOM_COMMAND(
      OUTPUT "${_output}"
      COMMAND ${CMAKE_COMMAND} -E make_directory "${_outdir}"
      COMMAND chmod +x "${_pch_generate_file_cmd}"
      COMMAND "${_pch_generate_file_cmd}"
      DEPENDS "${_input}" "${_pch_generate_file_cmd}"
      DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${_name}"
      DEPENDS ${_targetName}_pch_dephelp
      )

    ADD_PRECOMPILED_HEADER_TO_TARGET(${_targetName} ${_input}  ${_output} ${_dowarn})

Code chỉnh thành:

${_command} '-D$<JOIN:$<TARGET_PROPERTY:${_targetName},COMPILE_DEFINITIONS>,' '-D>'
")
    GET_FILENAME_COMPONENT(_outdir ${_output} PATH)
    IF(WIN32)
      ADD_CUSTOM_COMMAND(
        OUTPUT "${_output}"
        COMMAND ${CMAKE_COMMAND} -E make_directory "${_outdir}"
        COMMAND "${_pch_generate_file_cmd}"
        DEPENDS "${_input}" "${_pch_generate_file_cmd}"
        DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${_name}"
        DEPENDS ${_targetName}_pch_dephelp
	)
    if(NOT CMAKE_HOST_WIN32)  # chmod may be not available on Win32/MinGW (and it is not required)
      set(_pch_prepare_command COMMAND chmod +x "${_pch_generate_file_cmd}")
    endif()
    ADD_CUSTOM_COMMAND(
      OUTPUT "${_output}"
      COMMAND ${CMAKE_COMMAND} -E make_directory "${_outdir}"
      ${_pch_prepare_command}
      COMMAND "${_pch_generate_file_cmd}"
      DEPENDS "${_input}" "${_pch_generate_file_cmd}"
      DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${_name}"
      DEPENDS ${_targetName}_pch_dephelp
      )
    ELSE()
      ADD_CUSTOM_COMMAND(
        OUTPUT "${_output}"
        COMMAND ${CMAKE_COMMAND} -E make_directory "${_outdir}"
        COMMAND chmod +x "${_pch_generate_file_cmd}"
        COMMAND "${_pch_generate_file_cmd}"
        DEPENDS "${_input}" "${_pch_generate_file_cmd}"
        DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${_name}"
        DEPENDS ${_targetName}_pch_dephelp
        )
    ENDIF()

    ADD_PRECOMPILED_HEADER_TO_TARGET(${_targetName} ${_input}  ${_output} ${_dowarn})
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?