使用Emscripten编译PDF2SVG时出现致命错误
出于某些原因,我需要在浏览器环境中使用PDF2SVG();为了实现这一点,我想使用Emscripten。因此,我遵循了他们网站中描述的步骤 但我总是犯这样的错误:使用Emscripten编译PDF2SVG时出现致命错误,c,pdf,svg,emscripten,C,Pdf,Svg,Emscripten,出于某些原因,我需要在浏览器环境中使用PDF2SVG();为了实现这一点,我想使用Emscripten。因此,我遵循了他们网站中描述的步骤 但我总是犯这样的错误: tests/pdf2svg/pdf2svg.c:24:10: fatal error: 'glib.h' file not found #include <glib.h> ^~~~~~~~ 1 error generated. ERROR:root:compiler
tests/pdf2svg/pdf2svg.c:24:10: fatal error: 'glib.h' file not found
#include <glib.h>
^~~~~~~~
1 error generated.
ERROR:root:compiler frontend failed to generate LLVM bitcode, halting
tests/pdf2svg/pdf2svg.c:24:10:致命错误:“未找到glib.h”文件
#包括
^~~~~~~~
生成1个错误。
错误:根:编译器前端无法生成LLVM位代码,正在停止
我下载了两个必需的库:波普勒:
卡里奥: 并解压缩到“pdf2svg”目录中
我必须做什么才能通过该错误?免责声明 我决定写一个答案,即使这不会给你一个答案 您当前问题的解决方案。评论部分非常有限,我们 无法进行适当的讨论,我也无法在评论中给出足够的细节 编辑 我找到了这个。这也可能有助于解决您的问题 **结束编辑**
你问题中的一个主要问题是我们没有足够的信息 您的系统:我不知道您使用的是哪个发行版,哪些软件包是 已安装,如何安装(手动安装与软件包管理器安装),是否 安装了开发包等 大多数情况下,方法是使用 包管理器 今天的许多软件包都包含对的支持,这是一个打印 编译和构建包所需的
CFLAGS
和LDFLAGS
。悲哀地
模块名称有时可能因发行版而异。比如我的
系统我做了以下操作来获取包的名称
$pkg config--列出所有的| grep glib
...
glib-2.0 glib-C实用程序库
$pkg config glib-2.0--cflags
-I/usr/include/glib-2.0-I/usr/lib64/glib-2.0/include
$pkg config glib-2.0--libs
-lglib-2.0
它向我显示了使用glib应该使用哪个CFLAGS
和哪个LDFLAGS
通常,您会执行以下操作:
$gcc main.c-omain`pkg config glib-2.0--cflags--libs`
现在我已经在评论中声明,我个人没有使用过emcc
,所以我
不知道它的参数,但猜测它将具有相同或非常相似的参数
参数
每当发生错误时,我就重命名了包含位置,因此修复了许多位置错误,但这次我遇到了以下错误:
"error: parameter named 'glib_major_version' is missing"
据我所知,所有常量都是在configure.ac
文件中定义的,但编译器似乎没有加载这些常量
自动归档。如何强制编译器在编译时包含configure.ac
文件
现在我们正在进入另一个领域,那就是,
也称为自动工具。我不知道你对这件事了解多少,但基于
你的问题是,这里有一些知识空白
编写软件时,您可以手动编译,也可以键入编译代码
命令自己,或者您可以使用自动化过程的软件<代码>制作是
其中之一。虽然自己编写一个Makefile
非常好,但它可以
维护一个Makefile
对于具有不同功能的大型项目来说是非常具有挑战性的
构建选项、不同的目标、交叉编译等。这就是人们使用
还有一个软件,它允许您动态创建Makefile
s。在
过去的许多开源项目,特别是
例如,使用GNU构建系统来构建他们的软件1
使用GNU构建系统的项目有一组独特的文件和脚本
帮助程序员维护Makefile
s并使用户易于编译
并安装它们。作为用户,您通常会:
$tar xpzf someproject-0.0.1.tar.gz
$cd项目-0.0.1
$./configure--prefix=/usr
$make
$make安装
configure
脚本接受更多的参数,您可以使用这些参数控制
要支持的库、启用/禁用功能、交叉编译选项等。
configure
将评估您的系统,以确定您拥有哪个编译器,哪个
库及其安装版本等。如果一切顺利,则
它动态创建一个Makefile
(从模板中),以便您可以运行
make
命令configure
不仅创建必要的Makefile
s,而且
还包括构建软件时可能使用的其他文件
这些帮助文件可以是任何文件,主要是定义
宏,以便包括config.h
在内的代码可以查看哪些选项可用。
glib可能包括其他文件,例如declare
glib\u major\u版本
.2
那么,究竟什么是configure.ac
?现在,如果打开configure
脚本,您将
大多数情况下,我们会看到大量的代码,这些代码对用户来说并不友好。就是
因为configure
文件通常不是手工编写的,而是动态编写的
由维护人员生成。configure.ac
是您必须放置
将影响<代码>配置< /C>文件的规则:像哪种语言(C,C++)
其他),哪些库,检查依赖项等等,所有这些都是非常复杂的
简单语法
命令autoconf
读取configure.ac
并生成一个新的configure
可以在tarball中装运的文件。这个过程显然更加复杂
除此之外,您还需要执行其他步骤。通常autoreconf-i
基于configure.ac
和所需的所有模板重建configure
configure
(如Makefile.in
模板中的Makefile.am
文件)
我告诉你这一切是因为你犯了错误