"ошибка при загрузке общих библиотек:?" в Windows, несмотря на то, что команда ldd разрешает все библиотеки ⇐ C++
"ошибка при загрузке общих библиотек:?" в Windows, несмотря на то, что команда ldd разрешает все библиотеки
Я скомпилировал исполняемый файл для Windows с несколькими зависимостями. Я использую среду bash. Когда я пытаюсь запустить исполняемый файл, я получаю следующее сообщение об ошибке:
$ ./test.exe C:/Users/circleci/project/build/test.exe: ошибка при загрузке общих библиотек: ?: невозможно открыть файл общего объекта: нет такого файла или каталога Однако, когда я запускаю команду ldd для исполняемого файла, она может разрешить все библиотеки зависимостей:
$ ldd test.exe ntdll.dll => /c/Windows/SYSTEM32/ntdll.dll (0x7ffcec8e0000) KERNEL32.DLL => /c/Windows/System32/KERNEL32.DLL (0x7ffceb8e0000) KERNELBASE.dll => /c/Windows/System32/KERNELBASE.dll (0x7ffcea4a0000) libtf.dll => /c/Users/circleci/project/build/libtf.dll (0x7ffcd2d70000) WS2_32.dll => /c/Windows/System32/WS2_32.dll (0x7ffceae30000) RPCRT4.dll => /c/Windows/System32/RPCRT4.dll (0x7ffcebd90000) VCOMP140.DLL => /c/Windows/SYSTEM32/VCOMP140.DLL (0x7ffce1e00000) onnxruntime.dll => /c/Users/circleci/project/build/onnxruntime.dll (0x7ffcd63b0000) IPHLPAPI.DLL => /c/Windows/SYSTEM32/IPHLPAPI.DLL (0x7ffce90b0000) ucrtbase.dll => /c/Windows/System32/ucrtbase.dll (0x7ffce9fb0000) LIBPQ.dll => /c/Users/circleci/project/build/LIBPQ.dll (0x180000000) libcrypto-3-x64.dll => /c/Windows/SYSTEM32/libcrypto-3-x64.dll (0x7ffcca340000) VCRUNTIME140_1.dll => /c/Windows/SYSTEM32/VCRUNTIME140_1.dll (0x7ffce0200000) ADVAPI32.dll => /c/Windows/System32/ADVAPI32.dll (0x7ffcec6b0000) msvcrt.dll => /c/Windows/System32/msvcrt.dll (0x7ffcea890000) WLDAP32.dll => /c/Windows/System32/WLDAP32.dll (0x7ffcead60000) sechost.dll => /c/Windows/System32/sechost.dll (0x7ffceb7e0000) VCRUNTIME140.dll => /c/Windows/SYSTEM32/VCRUNTIME140.dll (0x7ffce0ed0000) SHELL32.dll => /c/Windows/System32/SHELL32.dll (0x7ffceaf90000) USER32.dll => /c/Windows/System32/USER32.dll (0x7ffcebbe0000) msvcp_win.dll => /c/Windows/System32/msvcp_win.dll (0x7ffcea2a0000) win32u.dll => /c/Windows/System32/win32u.dll (0x7ffcea0c0000) libssl-3-x64.dll => /c/Windows/SYSTEM32/libssl-3-x64.dll (0x7ffcdd5b0000) MSVCP140.dll => /c/Windows/SYSTEM32/MSVCP140.dll (0x7ffce0210000) gdi32.dll => /c/Windows/System32/gdi32.dll (0x19eb4bc0000) GDI32.dll => /c/Windows/System32/GDI32.dll (0x7ffceaf60000) Secur32.dll => /c/Windows/SYSTEM32/Secur32.dll (0x7ffcd8220000) gdi32full.dll => /c/Windows/System32/gdi32full.dll (0x7ffce9e90000) Вот моя переменная окружения PATH:
$ echo $PATH /c/tools/ruby31/bin:/c/Python311/Scripts:/c/Python311:/c/Program Files (x86)/Microsoft SDK/Azure/CLI2/wbin:/c/Windows/system32:/c/Windows :/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Windows/System32/OpenSSH:/c/ProgramData/GooGet:/c/Program Files/Google/Compute Engine/ Metadata_scripts:/c/Program Files (x86)/Google/Cloud SDK/google-cloud-sdk/bin:/c/Program Files/PowerShell/7:/c/Program Files/Google/Compute Engine/sysprep:/c/ ProgramData/chocolatey/bin:/cmd:/mingw64/bin:/usr/bin:/c/Program Files/Git LFS:/c/Program Files/Amazon/AWSCLIV2:/c/Program Files/Microsoft/Установщик веб-платформы: /c/Program Files/Microsoft Service Fabric/bin/Fabric/Fabric.Code:/c/Program Files/Microsoft SDK/Service Fabric/Tools/ServiceFabricLocalClusterManager:/c/Program Files/Go/bin:/c/Program Files/ OpenJDK/jdk-20.0.2/bin:/c/ProgramData/nvm:/c/Program Files/nodejs:/c/Program Files/dotnet:/c/Program Files/Microsoft SQL Server/150/Tools/Binn:/ c/Program Files/Microsoft SQL Server/Client SDK/ODBC/170/Tools/Binn:/c/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit:/c/Program Files (x86)/Incredibuild:/ c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin:/c/Users/circleci/AppData/Local/Microsoft/WindowsApps:/c/Users/circleci/go/bin:/c /Users/circleci/.dotnet/tools:/c/Program Files/CMake/bin Я пытаюсь запустить исполняемый файл из /c/Users/circleci/project/build и поместил зависимости (о которых мне известно) в этот же каталог.
Что мне не хватает? Я не люблю Windows...
Я скомпилировал исполняемый файл для Windows с несколькими зависимостями. Я использую среду bash. Когда я пытаюсь запустить исполняемый файл, я получаю следующее сообщение об ошибке:
$ ./test.exe C:/Users/circleci/project/build/test.exe: ошибка при загрузке общих библиотек: ?: невозможно открыть файл общего объекта: нет такого файла или каталога Однако, когда я запускаю команду ldd для исполняемого файла, она может разрешить все библиотеки зависимостей:
$ ldd test.exe ntdll.dll => /c/Windows/SYSTEM32/ntdll.dll (0x7ffcec8e0000) KERNEL32.DLL => /c/Windows/System32/KERNEL32.DLL (0x7ffceb8e0000) KERNELBASE.dll => /c/Windows/System32/KERNELBASE.dll (0x7ffcea4a0000) libtf.dll => /c/Users/circleci/project/build/libtf.dll (0x7ffcd2d70000) WS2_32.dll => /c/Windows/System32/WS2_32.dll (0x7ffceae30000) RPCRT4.dll => /c/Windows/System32/RPCRT4.dll (0x7ffcebd90000) VCOMP140.DLL => /c/Windows/SYSTEM32/VCOMP140.DLL (0x7ffce1e00000) onnxruntime.dll => /c/Users/circleci/project/build/onnxruntime.dll (0x7ffcd63b0000) IPHLPAPI.DLL => /c/Windows/SYSTEM32/IPHLPAPI.DLL (0x7ffce90b0000) ucrtbase.dll => /c/Windows/System32/ucrtbase.dll (0x7ffce9fb0000) LIBPQ.dll => /c/Users/circleci/project/build/LIBPQ.dll (0x180000000) libcrypto-3-x64.dll => /c/Windows/SYSTEM32/libcrypto-3-x64.dll (0x7ffcca340000) VCRUNTIME140_1.dll => /c/Windows/SYSTEM32/VCRUNTIME140_1.dll (0x7ffce0200000) ADVAPI32.dll => /c/Windows/System32/ADVAPI32.dll (0x7ffcec6b0000) msvcrt.dll => /c/Windows/System32/msvcrt.dll (0x7ffcea890000) WLDAP32.dll => /c/Windows/System32/WLDAP32.dll (0x7ffcead60000) sechost.dll => /c/Windows/System32/sechost.dll (0x7ffceb7e0000) VCRUNTIME140.dll => /c/Windows/SYSTEM32/VCRUNTIME140.dll (0x7ffce0ed0000) SHELL32.dll => /c/Windows/System32/SHELL32.dll (0x7ffceaf90000) USER32.dll => /c/Windows/System32/USER32.dll (0x7ffcebbe0000) msvcp_win.dll => /c/Windows/System32/msvcp_win.dll (0x7ffcea2a0000) win32u.dll => /c/Windows/System32/win32u.dll (0x7ffcea0c0000) libssl-3-x64.dll => /c/Windows/SYSTEM32/libssl-3-x64.dll (0x7ffcdd5b0000) MSVCP140.dll => /c/Windows/SYSTEM32/MSVCP140.dll (0x7ffce0210000) gdi32.dll => /c/Windows/System32/gdi32.dll (0x19eb4bc0000) GDI32.dll => /c/Windows/System32/GDI32.dll (0x7ffceaf60000) Secur32.dll => /c/Windows/SYSTEM32/Secur32.dll (0x7ffcd8220000) gdi32full.dll => /c/Windows/System32/gdi32full.dll (0x7ffce9e90000) Вот моя переменная окружения PATH:
$ echo $PATH /c/tools/ruby31/bin:/c/Python311/Scripts:/c/Python311:/c/Program Files (x86)/Microsoft SDK/Azure/CLI2/wbin:/c/Windows/system32:/c/Windows :/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Windows/System32/OpenSSH:/c/ProgramData/GooGet:/c/Program Files/Google/Compute Engine/ Metadata_scripts:/c/Program Files (x86)/Google/Cloud SDK/google-cloud-sdk/bin:/c/Program Files/PowerShell/7:/c/Program Files/Google/Compute Engine/sysprep:/c/ ProgramData/chocolatey/bin:/cmd:/mingw64/bin:/usr/bin:/c/Program Files/Git LFS:/c/Program Files/Amazon/AWSCLIV2:/c/Program Files/Microsoft/Установщик веб-платформы: /c/Program Files/Microsoft Service Fabric/bin/Fabric/Fabric.Code:/c/Program Files/Microsoft SDK/Service Fabric/Tools/ServiceFabricLocalClusterManager:/c/Program Files/Go/bin:/c/Program Files/ OpenJDK/jdk-20.0.2/bin:/c/ProgramData/nvm:/c/Program Files/nodejs:/c/Program Files/dotnet:/c/Program Files/Microsoft SQL Server/150/Tools/Binn:/ c/Program Files/Microsoft SQL Server/Client SDK/ODBC/170/Tools/Binn:/c/Program Files (x86)/Windows Kits/10/Windows Performance Toolkit:/c/Program Files (x86)/Incredibuild:/ c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin:/c/Users/circleci/AppData/Local/Microsoft/WindowsApps:/c/Users/circleci/go/bin:/c /Users/circleci/.dotnet/tools:/c/Program Files/CMake/bin Я пытаюсь запустить исполняемый файл из /c/Users/circleci/project/build и поместил зависимости (о которых мне известно) в этот же каталог.
Что мне не хватает? Я не люблю Windows...
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение