我有一个小应用程序,如果我做一个println!(“Hello World”);正确编译和运行。如果我将源代码更改为
...
let app = Application::builder()
.application_id("com.xyz_Portfolio_Tracker")
.build();
...
GTK 3中的这段代码可以编译,但在运行应用程序时会给予以下错误消息。
error: process didn't exit successfully:
target\debug\xyz_tracker.exe (exit
code:0xc0000139, STATUS_ENTRYPOINT_NOT_FOUND)
根据研究,错误信息应该指向一个丢失的“dll”。任何人都知道如何找出丢失的内容或以前解决过这个问题。
2条答案
按热度按时间vdzxcuhz1#
发现RUST编译器搜索Windows路径中的.lib。我有一个应用程序,它有所需的.lib,但在路径中的较高位置有较低的版本。一旦我在路径结构中向下移动应用程序,我正在构建的应用程序就可以运行了。
qacovj5a2#
约翰提供的答案在精神上是正确的,但缺乏细节,将使答案尽可能有帮助,因为这是谷歌搜索与手头上的问题有关的2个结果之一,我想我应该为其他遇到这个问题的人添加一些细节。
最终,对我来说,问题是
harfbuzz.dll
文件位于系统范围的PATH
环境变量的目录中,而MSVC
构建的gtk4
版本的harfbuzz.dll
位于用户特定的PATH
变量的目录中。以下是我在处理此问题时收集的一些信息,可以帮助其他人找到相关问题的根本原因:
powershell
或cmd
提示符下运行构建的GTK.exe
将生成与原始问题中所示类似的输出,但是如果您在Explorer中找到该程序并双击运行它,则将弹出一个错误窗口,并给予.dll
的名称和正在查找的缺少的入口点函数的名称.dll
是有问题的文件,该选项卡显示了每个正在运行的进程的动态链接库及其在文件系统中的位置。我还遇到了一个Gist,它建议使用同一软件套件中的listdlls64.exe
harfbuzz.dll
harfbuzz.dll
似乎是罪魁祸首。检查您的PATH
环境变量是否包含指向类似C:\...\jdk-<version numbers>-hotspot\bin
的条目,然后删除该条目或将c:\gtk-build\gtk\<arch>\release\bin
条目移动到更高的优先级而不是Java热点路径