rust 使用fltk 的小问题

article/2025/9/1 12:19:11

rust 使用fltk 的小问题

    • windowns下进行编译
    • 使用cargo build --release 打包出现以下问题

最近有需求写一个简单的桌面应用程序,正好使用rust来练练手,中间碰到一些问题,尤其fltk 打包有个cmd黑框就很恶心。只记录一些国内网络上资料较少的问题,有问题欢迎大家指出,如有转载请注明出处。

windowns下进行编译

win10 下进行编译时会出现一些报错,碰到这种情况的话有很多资料显示执行以下代码。如果提示你装vs不要挣扎直接装一个。

rustup toolchain install stable-x86_64-pc-windows-gnu
rustup default stable-x86_64-pc-windows-gnu

注意使用以上模式会出现下面报错,不要使用gnu模式在windowns上面执行,gnu在windowns平台上面的支持不是很友好,使用msvc模式

rustup toolchain install stable-x86_64-pc-windows-msvc
rustup default stable-x86_64-pc-windows-msvc
cargo runCompiling os-gui v0.1.0 (E:\code\rust\os-gui)
error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1|= note: "x86_64-w64-mingw32-gcc" "-fno-use-linker-plugin" "-Wl,--dynamicbase" "-Wl,--disable-auto-image-base" "-m64" "-Wl,--high-entropy-va" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained\\crt2.o" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\rustcpTJrAM\\symbols.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.1azqfce5lx4sambd.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.1esf92alsev40t7t.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.23oarcdfam8vav7x.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.2gmnyt2m1gxmcpct.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.3f18umh4ebjvfqaa.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.3satt6gwnrb8yjvd.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.408236gaslckzz1r.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.409g7dxqoaxuv3b.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.43a1kr0p1jpq6ib1.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.45rboiqcj5kkcc7u.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.4695qzhrqc9pkzj7.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.49dwrr32c9bgekjv.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.4fttbblusecbja0v.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.4o8fcbfuvqsmfgge.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.4pnqk5p4ik4w4tyv.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.4tlu8yckkp3hdtn6.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.f545xlx1t8jeuhf.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.lbua4hb236sohdb.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.r0i49jliojpoby9.rcgu.o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.3189ch52cu0ceqv.rcgu.o" "-L" "E:\\code\\rust\\os-gui\\target\\debug\\deps" "-L" "E:\\code\\rust\\os-gui\\target\\debug\\build\\fltk-sys-ac04a369c112a785\\out\\build" "-L" "E:\\code\\rust\\os-gui\\target\\debug\\build\\fltk-sys-ac04a369c112a785\\out\\build\\Release" "-L" "E:\\code\\rust\\os-gui\\target\\debug\\build\\fltk-sys-ac04a369c112a785\\out\\lib" "-L" "E:\\code\\rust\\os-gui\\target\\debug\\build\\fltk-sys-ac04a369c112a785\\out\\lib64" "-L" "E:\\code\\rust\\os-gui\\target\\debug\\build\\fltk-sys-ac04a369c112a785\\out\\lib\\Release" "-L" "E:\\code\\rust\\os-gui\\target\\debug\\build\\fltk-sys-ac04a369c112a785\\out\\lib64\\Release" "-L" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bstatic" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\libfltk-39d5e4c9087707a1.rlib" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\libttf_parser-abb5e7d9e5584d79.rlib" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\libcrossbeam_channel-bd95ba3f2ef73d9a.rlib" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\libcrossbeam_utils-88487f692bdae9f2.rlib" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\libcfg_if-d665f346d3258780.rlib" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\libbitflags-e33b042289ec88bb.rlib" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\libfltk_sys-901c089775d8797c.rlib" "-Wl,--start-group" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-fefff10efd686913.rlib" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-9c45725c63c0d5ed.rlib" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libobject-5e1c5cd9ff1eb7cc.rlib" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libmemchr-b6bf783b1c783d10.rlib" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libaddr2line-2241249e06c7cb40.rlib" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libgimli-03ustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd_detect-8931bc6a2b527206.rlib" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\be248c77f2f0b.rlib" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libadler-9148e9af213d2829.rlib" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-47941ef50057df8b.rlib" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-66b0ea2785827b9a.rlib" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcfg_if-4b65aaa3f0b095f9.rlib" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-04a1f133ddb50e5e.rlib" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-f67804e146a91ffe.rlib" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-a5cbd3ad9e3068dd.rlib" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-4bc25ea8e4535542.rlib" "-Wl,--end-group" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-ac0b598a973ccaf7.rlib" "-Wl,-Bdynamic" "-lws2_32" "-lcomctl32" "-lgdi32" "-loleaut32" "-lole32" "-luuid" "-lshell32" "-ladvapi32" "-lcomdlg32" "-lwinspool" "-luser32" "-lkernel32" "-lodbc32" "-lgdiplus" "-ladvapi32" "-luserenv" "-lkernel32" "-lws2_32" "-lbcrypt" "-lgcc_eh" "-l:libpthread.a" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvcrt" "-luser32" "-lkernel32" "-Wl,--nxcompat" "-nostartfiles" "-L" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-L" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained" "-o" "E:\\code\\rust\\os-gui\\target\\debug\\deps\\os_gui-8040208486793bb6.exe" "-Wl,--gc-sections" "-no-pie" "-nodefaultlibs" "C:\\Users\\Administrator\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"= note: ld: cannot find -lgdipluserror: could not compile `os-gui` due to previous error

使用cargo build --release 打包出现以下问题

win10下,我们需要正常打包出一个应用程序,但出现了一个cmd黑框,看着就很难受,解决以下问题使用以下命令

cargo rustc --release -- -Clink-args="/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup"

在这里插入图片描述


http://chatgpt.dhexx.cn/article/N0uNyQ9i.shtml

相关文章

gmsh+fltk配置过程

本文主要讲解如何利用cmake进行配置带图形界面的gmsh,因为gmsh给出的qt范例只有简单的显示功能,而对 fltk中编写了较完整的功能,所以利用fltk进行说明,如需qt可参考链接。本文使用的编译器是vs2019 首先为了编译成功gmsh软件,我们…

FLTK学习笔记1-绘制基本控件(按钮、文本输入、容器)

FLTK学习笔记1-绘制基本控件(按钮、文本输入、容器) FLTK中的坐标FLTK常用控件按钮控件文本控件容器控件 绘制基本控件 FLTK中的坐标 在FLTK中坐标均为正整数,其单位是像素(pixel),原点(x0, y0…

FLTK中的字体

FLTK中的字体 字体在FLTK中的表示获取系统的字体编号表程序示例 字体在FLTK中的表示 在FLTK中,系统中的每一种字体都对应着一个整数类型(严格来讲是Fl_Font类型,但Fl_Font本身就是int的别名)的字体编号。例如,在本人的系统中“楷体”所对应的…

FLTK学习笔记4-在FLTK中显示图片(上)

FLTK学习笔记4-在FLTK中显示图片(上) Fl_JPEG_Image和Fl_PNG_ImageFl_Shared_Image程序示例 在FLTK中,并不是任何时候都可以绘图的(当然也包括绘制图片),一般来讲我们只能在控件类中的 draw()方法中绘制所…

C++轻量级跨平台桌面GUI库FLTK的简单使用

C的跨平台桌面GUI库有很多,大体上分成两种流派:retained mode和immediate mode。 其中前者是主流的桌面GUI机制框架,包括:Qt、wxwidgets、gtk、juce等后者是一些游戏引擎编辑器常用的GUI机制框架,包括:img…

开源跨平台GUI库Fltk在Deepin Linux下的使用

开源跨平台GUI库Fltk在Deepin Linux下的使用 前言一、下载安装二、样例使用三、自编代码四、后记 前言 在互联网应用漫天的现在,实体企业、工厂却绕不开大量的桌面应用,开发工具有恐龙C#,有难用的MFC,也有没落的Delphi&#xff0…

Ubuntu安装FLTK详细过程

1.官网下载源码压缩包。版本建议最新,我这里的版本是1.3.8 2. 终端输入:sudo apt-get install build-essential xorg-dev libx11-dev libcairo2-dev //此步骤必要!!!安装依赖库,不然后面安装总会出错&#…

[Rust GUI]fltk-rs的helloworld

1、安装VSCode 下载安装VSCode 安装VSCode扩展 rust-analyzer或rust-analyzer(CN) 2、安装Microsoft C 生成工具 访问微软官网下载生成工具,勾选使用 C 的桌面开发之后会自动勾选5个项目 取消勾选以下项目 用于 Windows 的 C CMake 工具 测试工具核心功能 - 生成…

使用CLion配置第一个FLTK界面

文章目录 写在前面安装与配置安装helloworld配置命令行配置CLion 运行结果 写在前面 假期抽时间学习一下跨平台GUI界面的开发, 正好也当做C的练手小项目了. C标准库中没有对于GUI的支持, 需要依赖三方库, 这里我先想到的是老牌跨平台GUI——Qt, 但是作为一个小项目感觉使用Qt有…

FLTK-Rs 2

Trees 树形结构,允许在树中显示项目,使用add方法发添加条目 use fltk::{prelude::*, *}; use fltk::enums::FrameType;fn main() {let a celet mut win window::Window::default().with_size(400, 300);let mut tree tree::Tree::new(5,5,390,290,&…

FLTK的UI设计工具FLUID使用方法总结

tags: FLTK C GUI 写在前面 终于又捡起来FLTK了, 先来看看怎么通过FLUID创建一个图形界面并完成回调函数的创建, 参考的是官方教程中关于创建一个CubeView程序的例子, 教程里面很多都与最新版本的FLTK界面不太一致, 但是通过我的摸索还是找出了方法. 下面来分享一下. 创建类…

fltk和glog在mac下的安装与编译

glog 根据官方文档安装即可 https://github.com/google/glog % git clone https://github.com/google/glog.git % cd glog % cmake -S . -B build -G "Unix Makefiles" //这句含义未知 % cmake --build build安装完后可以去/usr/local目录下查看是否有对应的头文件…

c语言fltk图形库,FLTK编程模型

2003 年 5 月 10 日 FLTK(Fast Light Tool Kit 发音为fulltick) 是一种使用C++开发的GUI工具包,它可以应用于Unix,Linux,MS-Windows95/98/NT/2000和MacOS操作系统平台,相对于其它的许多图形接口开发工具包(如MFC、GTK、QT等),它具有体积很小、速度比较快,且有着更好的移植性…

FLTK-Rs

终于还是到这一步了,可视化,我的超人! FLTK是一个跨平台的轻量级 gui 库。该库本身是用 C98 编写的,具有很高的可移植性。fltk crate 是用 Rust 编写的,并使用 FFI 调用 FLTK 包装器cfltk,它是用 C89 和 C…

Visual Studio 安装 FLTK

Visual Studio 安装 FLTK 环境介绍 Windows 10Visual Studio Community 2019 (2021-11-29补充2022版)FLTK-1.3.7 下载与解压 ​ 进入FLTK官网-Download下载最新版本。 ​ 解压到D:\Program Files\fltk(解压路径任意都行),推荐使用Bandzip免费解压工具。 编译 …

FLTK--轻量级C++跨平台GUI库

FLTK FLTK(Fast Light Toolkit)是一个跨平台的CGUI工具集,用在UNIX/Linux(X11)、微软Windows和Mac OS X上。FLTK提供现代的GUI功能,除却膨胀,通过OpenGL和内建的GLUT模拟器提供3D图形支持。最初…

浅谈如何fltk项目编译和实现显示中文

目录 一、编译 二、中文显示如何处理: 2.1在发文2天前突然发现,我这个界面显示英文出现问题了,开始我的搜索之旅,一些参考页面有碰到问题也可以看看: 2.2、 那就开始翻翻官方自带的例程吧,看看他如何显…

FLTK 学习一:简介和安装

文章目录 FLTK 简介FLTK 安装FLTK Windows安装FLTK Linux 安装 FLTK 简单示例参考资料 FLTK 简介 从网上引用的一段 FLTK 的介绍 FLTK (Fast Light Tool Kit 发音为fulltick) 是一种使用 C 开发的 GUI 工具包,它可以应用于 Unix, Linux, MS-Windows95/98/NT/2000 和…

安装使用FLTK图形库

FLTK是Fast Light Toolkit的简称,是一个跨平台的C GUI包,FLTK提供xiandai GUI功能,而且通过OpenGL支持3D图像。 下载FLTK安转包fltk-1.3.4-1-source.tar.gz: http://www.fltk.org/software.php?VERSION1.3.4&FILEfltk/1.3.…

BOBCAT: 基于双层优化的计算机化自适应测验(超硬核解读论文+阅读论文技巧)

文章目录 前言AbstractIntroductionCAT 介绍传统的认知诊断模型传统的CAT选题策略传统方法局限性 ContributionsBOBCAT框架双层优化问题BOBCAT框架BOBCAT 训练过程 OptimizationExperiments能力评估问题暴露和内容重叠问题选择 Conclusions 前言 大家好,我是小曾&a…