SoftwareNetwork / sw

Software Manager. Build System, Build System Generator and Package Manager. C/C++ and other languages. Tools and libraries for Software Management.
https://software-network.org
Other
115 stars 23 forks source link

CMake Error for SW: Non-zero exit code #127

Open Sree0211 opened 3 months ago

Sree0211 commented 3 months ago

Describe the bug I tried to input tesseract lib into my Cmakelists for my OCR task. But I get sw:non-zero exit code: Access is denied.

This is the message I get.

Selecting Windows SDK version to target Windows 10.0.19045. The CXX compiler identification is MSVC 19.0.24215.1 Detecting CXX compiler ABI info Detecting CXX compiler ABI info - done Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe - skipped Detecting CXX compile features Detecting CXX compile features - done OpenCV ARCH: x64 OpenCV RUNTIME: vc14 OpenCV STATIC: OFF Found OpenCV: C:/opencv/build (found suitable version "4.2.0", minimum required is "4.2") Found OpenCV 4.2.0 in C:/opencv/build/x64/vc14/lib You might need to add C:\opencv\build\x64\vc14\bin to your PATH to be able to run your applications. Found SW: C:/SW Client
sw: processing dependencies sw command: C:/SW Client -shared -platform x64 -compiler msvc-19.0 -d C:/git/OCR_Test/Build/.sw/cmake -config d,msr,rwdi,r integrate -cmake-deps C:/git/OCR_Test/Build/.sw/cmake/sw.txt -cmake-file-version 9 CMake Error at C:/Users/sreenath/.sw/storage/etc/sw/static/SWConfig.cmake:267 (message): sw: non-zero exit code: Access is denied Call Stack (most recent call first): CMakeLists.txt:28 (sw_execute)

Configuring incomplete, errors occurred! See also "C:/git/OCR_Test/Build/CMakeFiles/CMakeOutput.log".

I even did sw --self-upgrade C:\SW Client>sw --self-upgrade Downloading signature file: https://software-network.org//client/sw-master-windows_x86_64-client.zip.sha512.sig Downloading the latest client: https://software-network.org//client/sw-master-windows_x86_64-client.zip Unpacking Replacing client

C:\SW Client>Waiting old program to exit... Success!

Could you please help me with this. I can paste mc CMakeLists if needed

egorpugin commented 3 months ago

Yes, please. Post cmakelists. Also try to run sw setup and re-try cmake.

egorpugin commented 3 months ago

Where is sw.exe located? Remove spaces in the directory name. I see this Found SW: C:/SW Client

Sree0211 commented 3 months ago

sw.exe is located in C:/SWClient (I modified the spaces now and tried, still the same problem)

Sree0211 commented 3 months ago

cmake_minimum_required(VERSION 3.11) project(OCR_Test CXX)

set_property(GLOBAL PROPERTY USE_FOLDERS ON) set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake Targets")

set(OpenCV_DIR "C:/opencv/build") find_package(OpenCV 4.2 REQUIRED) set(OpenCV_BASEDIR "C:/opencv/build/x64/vc14/bin")

set(SW_BUILD_SHARED_LIBS 1) set(DEPENDENCIES org.sw.demo.google.tesseract.libtesseract-master org.sw.demo.intel.opencv.imgproc org.sw.demo.intel.opencv.highgui)

set(SW_DIR "C:/Users/sreenath/.sw/storage/etc/sw/static") set(SW_EXECUTABLE "C:/SWClient")

find_package(SW REQUIRED) sw_add_package(${DEPENDENCIES}) sw_execute()

set(Tesseract_DIR "C:/vcpkg/packages/tesseract_x64-windows-static/share/tesseract") set(Leptonica_DIR "C:/vcpkg/packages/leptonica_x64-windows-static/share/leptonica") set(CURL_DIR "C:/vcpkg/packages/curl_x64-windows-static/share/curl")

set(Tesseract_LIB "C:/Program Files/tesseract-ocr") find_library(Tesseract_LIB NAMES tesseract)

find_package(Leptonica REQUIRED) find_package(Tesseract REQUIRED)

add_executable(OCR_Test main.cpp)

target_link_libraries(OCR_Test PUBLIC ${DEPENDENCIES} Tesseract::Tesseract Leptonica::Leptonica)

target_compile_features(OCR_Test PUBLIC cxx_std_17)

set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${PROJECT_NAME}) include_directories(OCR_Test PUBLIC ${Tesseract_INCLUDE_DIRS})

egorpugin commented 3 months ago

Try it like this and post logs. Put copy-past between ```


project(OCR_Test CXX)

set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake Targets")

set(SW_BUILD_SHARED_LIBS 1)
set(DEPENDENCIES
org.sw.demo.google.tesseract.libtesseract
org.sw.demo.intel.opencv.imgproc
org.sw.demo.intel.opencv.highgui)

find_package(SW REQUIRED)
sw_add_package(${DEPENDENCIES})
sw_execute()

add_executable(OCR_Test
main.cpp)

target_link_libraries(OCR_Test PUBLIC
${DEPENDENCIES})

target_compile_features(OCR_Test PUBLIC cxx_std_17)

set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${PROJECT_NAME})
Sree0211 commented 3 months ago

I tried your above CMakeLists suggestion. BUt I get SW cannot be found

Detecting CXX compile features - done
CMake Error at C:/Program Files/CMake/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find SW (missing: SW_EXECUTABLE)
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  C:/Users/sreenath/.sw/storage/etc/sw/static/SWConfig.cmake:22 (find_package_handle_standard_args)
  CMakeLists.txt:13 (find_package)

Configuring incomplete, errors occurred!
See also "C:/git/OCR_Test/Build/CMakeFiles/CMakeOutput.log".
Sree0211 commented 3 months ago

In my Cmake app, it couldn't locate SW_Executable, so I manually located it C:/SWClient/sw.exe, Then I get a new error

Downloading database from origin remote

Downloading: [org.sw.demo.google.tesseract.libtesseract-5.3.4]/[Source Archive]

Unpacking  : [org.sw.demo.google.tesseract.libtesseract-5.3.4]/[Source Archive]

Downloading: [pub.egorpugin.primitives.filesystem-0.3.1]/[Source Archive]

Unpacking  : [pub.egorpugin.primitives.filesystem-0.3.1]/[Source Archive]

[26/142] [pub.egorpugin.libuv-1.44.2]/src/timer.c

[27/142] [org.sw.demo.boost.thread-1.84.0]/src/tss_null.cpp
[28/142] [pub.egorpugin.libuv-1.44.2]/src/win/tty.c
[29/142] [org.sw.demo.boost.atomic-1.84.0]/src/find_address_sse2.cpp
[30/142] [org.sw.sw.client.driver.cpp.cl_generator-0.4.5]/[sw.rc]

[33/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/parse.cpp

[34/142] [pub.egorpugin.primitives.command-0.3.1]/src/uv_command.cpp

[41/142] [pub.egorpugin.libuv-1.44.2]/src/win/winapi.c

[46/142] [pub.egorpugin.libuv-1.44.2]/src/win/winsock.c

[48/142] [pub.egorpugin.libuv-1.44.2]/src/win/udp.c

[53/142] [pub.egorpugin.libuv-1.44.2]/src/win/error.c

[56/142] [org.sw.sw.client.driver.cpp.cl_generator-0.4.5]/src/sw/driver/tools/cl_generator.cpp

[57/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/regex_yaml.cpp

[58/142] [org.sw.demo.boost.filesystem-1.84.0]/src/utf8_codecvt_facet.cpp

[60/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/exceptions.cpp

[64/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/[sw.rc]

[65/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/emitterutils.cpp

[66/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/convert.cpp

[71/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/scantoken.cpp

[72/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/null.cpp

[74/142] [org.sw.demo.boost.thread-1.84.0]/src/win32/tss_dll.cpp

[81/142] [org.sw.demo.boost.filesystem-1.84.0]/src/directory.cpp

[82/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/nodeevents.cpp

[83/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/nodebuilder.cpp

[85/142] [org.sw.demo.boost.atomic-1.84.0]/src/wait_on_address.cpp

[86/142] [org.sw.demo.boost.filesystem-1.84.0]/src/path_traits.cpp

[88/142] [org.sw.demo.boost.atomic-1.84.0]/src/lock_pool.cpp

[89/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/emitterstate.cpp

[90/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/simplekey.cpp

[93/142] [org.sw.demo.boost.chrono-1.84.0]/[sw.rc]

[97/142] [org.sw.demo.boost.atomic-1.84.0]/src/find_address_sse41.cpp

[99/142] [org.sw.demo.boost.thread-1.84.0].lib

[100/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/parser.cpp

[101/142] [pub.egorpugin.primitives.command-0.3.1]/src/command.cpp

[102/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/node_data.cpp

[104/142] [org.sw.demo.boost.chrono-1.84.0].lib

[105/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/exp.cpp

[106/142] [org.sw.demo.boost.filesystem-1.84.0]/src/path.cpp

[107/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/binary.cpp

[109/142] [org.sw.demo.boost.atomic-1.84.0]/src/find_address_sse2.cpp

[111/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/singledocparser.cpp

[112/142] [org.sw.demo.boost.chrono-1.84.0]/src/chrono.cpp

[113/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/contrib/graphbuilder.cpp

[114/142] [pub.egorpugin.libuv-1.44.2].lib

[117/142] [org.sw.demo.boost.chrono-1.84.0]/src/process_cpu_clocks.cpp

[118/142] [org.sw.demo.boost.atomic-1.84.0].dll

[119/142] [org.sw.demo.boost.atomic-1.84.0].lib

[120/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/scanscalar.cpp

[121/142] [org.sw.demo.boost.filesystem-1.84.0]/src/operations.cpp

[122/142] [pub.egorpugin.primitives.main-0.3.1].lib

[127/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0]/src/tag.cpp

[128/142] [org.sw.demo.boost.filesystem-1.84.0]/src/codecvt_error_category.cpp

[129/142] [org.sw.demo.boost.filesystem-1.84.0].lib

[130/142] [org.sw.demo.boost.chrono-1.84.0].dll

[131/142] [org.sw.demo.boost.thread-1.84.0].dll

[132/142] [org.sw.demo.jbeder.yaml_cpp-0.8.0].dll

[133/142] [org.sw.demo.boost.filesystem-1.84.0].dll

[134/142] [org.sw.sw.client.driver.cpp.cl_generator-0.4.5].exe

[135/142] [loc.sw.self.e58a9b-0.0.34] generate: "C:/Users/sreenath/.sw/storage/pkg/a0/ef/79bd/obj/bld/550076/bd/options_cl.generated.h", "C:/Users/sreenath/.sw/storage/pkg/a0/ef/79bd/obj/bld/550076/bd/options_cl.generated.cpp"

[136/142] [config pch]

Exception in file D:/dev/cppan2/client2/src/sw/builder/command.cpp:845, function execute1: When executing: [pub.egorpugin.primitives.command-0.3.1]/src/command.cpp
C:/Users/sreenath/.sw/storage/pkg/9d/a6/8d0d/src/sdir/src/command/src/command.cpp(142): error C2039: 'contains': is not a member of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\xstring(4871): note: see declaration of 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
C:/Users/sreenath/.sw/storage/pkg/9d/a6/8d0d/src/sdir/src/command/src/command.cpp(147): note: see reference to function template instantiation 'auto primitives::Command::setProgram::<lambda_1>::()::<lambda_1>::operator ()<const char(&)[6]>(_T1) const' being compiled
        with
        [
            _T1=const char (&)[6]
        ]
C:/Users/sreenath/.sw/storage/pkg/9d/a6/8d0d/src/sdir/src/command/src/command.cpp(147): error C3487: 'bool': a
ll return expressions must deduce to the same type: previously it was 'void'
C:/Users/sreenath/.sw/storage/pkg/9d/a6/8d0d/src/sdir/src/command/src/command.cpp(144): error C3487: 'bool': all return expressions must deduce to the same type: previously it was 'void'
C:/Users/sreenath/.sw/storage/pkg/9d/a6/8d0d/src/sdir/src/command/src/command.cpp(144): error C2562: 'primitives::Command::setProgram::<lambda_1>::()::<lambda_1>::operator ()': 'void' function returning a value
C:/Users/sreenath/.sw/storage/pkg/9d/a6/8d0d/src/sdir/src/command/src/command.cpp(147): note: see declaration of 'primitives::Command::setProgram::<lambda_1>::()::<lambda_1>::operator ()'
C:/Users/sreenath/.sw/storage/pkg/9d/a6/8d0d/src/sdir/src/command/src/command.cpp(147): error C2296: '||': illegal, left operand has type 'void'
C:/Users/sreenath/.sw/storage/pkg/9d/a6/8d0d/src/sdir/src/command/src/command.cpp(147): error C2297: '||': illegal, right operand has type 'void'
command failed: exit code = 2
Total errors: 1

sw command: C:/SWClient/sw.exe -shared -platform x64 -compiler msvc-19.0 -d C:/git/OCR_Test/Build/.sw/cmake -config d,msr,rwdi,r integrate -cmake-deps C:/git/OCR_Test/Build/.sw/cmake/sw.txt -cmake-file-version 9
CMake Error at C:/Users/sreenath/.sw/storage/etc/sw/static/SWConfig.cmake:267 (message):
  sw: non-zero exit code: 1
Call Stack (most recent call first):
  CMakeLists.txt:15 (sw_execute)
egorpugin commented 3 months ago
  1. Re-run sw setup and remove manual path in CMakeLists.txt
  2. sw requires the latest VS2022 or VS2022 Build Tools to be installed.

Fix these two points and you should be set up.

Sree0211 commented 3 months ago

Is there a way to make use of sw for tesseract in VS 2015 ?

egorpugin commented 3 months ago

You can try to build tess for VS2015, but you need VS2022 Build Tools (they are free to use) for sw itself.