A. 如何在Windows编译和使用QuickJS
在Windows环境下,使用QuickJS进行编译和应用时可能会遇到一些挑战。与Linux或Mac系统相比,Windows环境下的QuickJS编译并非直接支持,且不支持动态链接库(DLL)的加载。然而,通过在MSYS2平台上进行一系列的步骤,可以成功解决这些问题并实现QuickJS在Windows环境下的有效使用。
首先,安装MSYS2是整个流程的起点。访问MSYS2官网,下载并安装Msys2,选择一个合适的硬盘路径进行安装。安装完成后,进行必要的设置,确保使用MSYS2的UCRT64环境。值得注意的是,QuickJS在MSYS2上构建的能力已扩展至支持64位版本,因此不必担心只能构建32位版本的问题。
在MSYS2中,通过添加清华镜像源加速下载和安装软件,这一步骤能显着提升操作效率。执行以下命令为Pacman管理器增加清华镜像源,确保软件源更新,以便于后续操作。接着,安装必要的编译工具和环境,确保每个安装过程中的确认操作输入“y”并按下回车。
准备完成后,下载QuickJS源码并解压。在解压后的源码中,找到quickjs-libc.c文件,此文件包含QuickJS加载本地库的逻辑。针对Windows环境,修改此文件中的动态链接库加载逻辑,使用Windows系统提供的动态库操作函数替换原有部分,以实现加载DLL动态库的功能。这一修改过程相对简单,涉及对相关函数的替换,确保Windows环境下的兼容性。
进行QuickJS的编译时,使用MSys2内的Make工具,或手动修改Makefile以启用Windows支持。确保将生成的动态库与QuickJS可执行文件放置在同一目录下,以便于运行时调用。此步骤涉及复制ucrt目录下的bin文件至适当位置。
在为QuickJS增加本地模块时,需要编写使用C或C++语言的本地模块,参照QuickJS提供的Example文件作为参考。在编译本地模块时,使用JS_SHARED_LIBRARY宏定义,并确保生成的动态库使用.so扩展名,即使在Windows系统下。此外,需要生成libquickjs.a库文件,通常位于examples目录之外,因此需要使用相对路径如../libquickjs.a进行链接。
尽管整个流程可能较为繁琐,但结果是积极的。QuickJS作为轻量级的JavaScript引擎,相比Node.js在功能上可能有所欠缺,但在资源消耗和便携性方面具有优势。
B. Windows搭建MSYS2和MINGW64环境
为了在windows下编译GDAL和Cesium Terrain Builder等软件,需要搭建MSYS2和MINGW64的编译环境
Windows Server 2012 R2
MSYS2 64位
双击安装MSYS2之后,由于MSYS2默认资源站点速度较慢,可以配置国内 清华大学开源镜像站裤镇
安装完成后,编辑 /etc/pacman.d/mirrorlist.mingw32 ,在文件开头添加:
编辑 /etc/pacman.d/mirrorlist.mingw64 ,在文件开头添加:
编辑 /etc/pacman.d/mirrorlist.msys ,在文件开头添加:
然后执行 pacman -Sy 刷新软件包数据即可。
配置国内镜像站点后液纯好,在shell里面执行 pacman -Syuu 更新全部依赖
MSYS2内置了pacman包管理工具,运行
pacman -S gcc make
即可安装gcc,make等工具
msys2安装完成后,开始菜单会有三个启动方式:
三种启动方式区别主要在于编译环境软件包的不同,如gcc,clang等版本不同。通用的工具如:grep,git,vim,emacs等等在三种方式内都是一样的。
默认情况下, msys64/home 会作为系统默闹铅认home目录,如果需要修改home目录,可在环境变量-》用户变量中建立 Home 变量,指向自定义位置,然后修改 msys64/etc/nsswitch.conf ,设置 db_home: /%Home%
C. Windows下的iverilog编译安装
在学习逻辑电路的过程中,我决定使用iverilog作为过渡工具。在经过一番寻找之后,我发现获取的是源代码,于是进行了一系列配置和安装,现在我想与大家分享这个过程,希望能帮助到同样需要在 Windows 系统下安装和配置iverilog的朋友们。
整个过程可以分为两个主要部分:相关工具的配置和编译安装iverilog并进行调试。首先,我们从配置必要的工具开始。
1. 相关工具的配置
第一步是安装msys2,这是一个小型的GNU集成环境,可以帮助我们搭建一个类Linux的开发环境。msys2集成了pacman软件包管理系统,这使得配置过程变得更加简便。安装msys2的过程相对简单,只需前往其官方网站,下载安装包,按照安装向导进行操作即可。安装完成后,我们需要进一步进行配置。
配置过程中,我们还需要安装一些必要的工具,例如编译器和make工具。在msys2的MINGW64版本中,我们首先需要安装C++编译器。通过在命令行中执行特定命令,安装编译器,然后按照提示进行操作以设置系统变量。具体操作包括打开路径设置,新建路径并添加msys2的安装目录下的bin文件夹。完成这一系列操作后,注销当前用户并重新登录,以确保环境变量的更新生效。
为了验证编译器是否成功安装,我们可以通过在命令行中输入“gcc --version”和“where gcc”来检查。如果显示版本信息和路径,说明编译器已成功安装。接下来,我们可以继续安装其他工具,如GNU make,以完成配置。
2. iverilog的安装与验证
完成编译器和其他工具的配置后,我们从GitHub下载iverilog的源代码。将源代码放在易于访问的位置后,使用msys2的MINGW64 64-bit版本执行相应的命令来安装iverilog。在安装过程中,确保没有出现错误信息,以确认安装过程顺利。
安装完成后,在iverilog源码目录下应生成一个名为configure的无后缀名文件。通过执行特定命令来完成配置。接着,我们使用另一个命令进行编译和链接,确保iverilog的安装成功。在源码目录下执行后,应该能看到“Hello, world”这样的输出信息,这表明我们离成功安装iverilog又近了一步。
配置系统环境变量以使iverilog可用。找到系统变量的path项,新建并添加iverilog安装目录。注销并重新登录以使更改生效。现在,我们可以使用iverilog进行基本的逻辑电路设计和仿真。为了验证安装是否成功,我们可以通过在命令行中输入“iverilog -V”来查看iverilog版本信息。接下来,创建并编译逻辑电路的示例文件,确保没有错误信息出现。
通过以上步骤,我们成功地在Windows系统下安装和配置了iverilog。希望这些经验能够帮助到需要的朋友。在安装和配置过程中,如果遇到任何问题,欢迎提出,让我们共同解决。