Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有用于绘制图片和制作.jpg文件的C库?_C_Linux_Yacc_Lex_Call Graph - Fatal编程技术网

是否有用于绘制图片和制作.jpg文件的C库?

是否有用于绘制图片和制作.jpg文件的C库?,c,linux,yacc,lex,call-graph,C,Linux,Yacc,Lex,Call Graph,我认为这个问题看起来很愚蠢,没有必要,但我真的不知道如何解决这个问题 由于使用了一些用C编写的测试代码,我需要制作一个调用图 我制作了lex文件和yacc文件来解析语法 现在我可以制作一个可执行文件来解析用C语言编写的带有.l和.y文件的文件 但现在我必须生成一个jpg文件和文本文件,作为输入文件的可执行文件的结果 jpg文件和文本文件需要在输入(调用图)中显示函数的调用关系 所以假设有文件 lex.l yacc.y test.c 我需要制作一个可执行文件 lex.lcommand makel

我认为这个问题看起来很愚蠢,没有必要,但我真的不知道如何解决这个问题

由于使用了一些用C编写的测试代码,我需要制作一个调用图

我制作了lex文件和yacc文件来解析语法

现在我可以制作一个可执行文件来解析用C语言编写的带有.l和.y文件的文件

但现在我必须生成一个jpg文件和文本文件,作为输入文件的可执行文件的结果

jpg文件和文本文件需要在输入(调用图)中显示函数的调用关系

所以假设有文件

lex.l yacc.y test.c
我需要制作一个可执行文件

lex.l
command make
lex.yy.c

yacc-d yacc.y
命令make
y.tab.c
y.tab.h
(lex文件的标题)

现在
cc y.tab.c lex.yy.c
cammand将生成一个可执行文件
a.out

因此,作为
a.out
命令的结果,我必须生成一个jpg文件(.jpg)和一个文本文件(.txt)

我知道如何使用fprintf()函数生成文本文件

但是jpg文件是我真的搞不懂的

我不能用其他的工具

我只能在lex文件和yacc文件中键入一些C代码

所以我想我可以用一些C库来做这个

我有什么办法可以做到这一点吗

多谢各位

由于使用了一些用C编写的测试代码,我需要制作一个调用图

您可以使用其他一些工具来绘制和使用它(这可能是最简单的方法,因为它符合标准)。考虑运行一些或可能的过程。您需要Linux系统编程方面的技能(要明智地使用中列出的几个),所以您应该阅读或更新一些内容

因此,作为
a.out
命令的结果,我必须生成一个jpg文件(.jpg)和一个文本文件(.txt)

不要把你的程序命名为a.out,2019年它是荒谬的。学习如何去做。并学习程序参数(您可能希望使用工具)。您将以
myprogram test.c
的形式调用您的程序,但请注意,您的shell(您将用于运行程序的shell)将起作用

您还可以使用一些like或,使您的程序成为某种应用程序(以工具箱提供的某些应用程序为中心)。如果你只想输出一些图形,你也可以考虑。

如果你有技能,你可以考虑使用Web技术(比如++);如果你想让你的程序成为一个专门的Web服务器(例如你的用户将浏览一些URL),考虑使用一个服务器库,比如.< /P>

如果您接受生成具有绘图的其他类型的文件,请考虑释放一些SVG或PDF文件。你也会找到相应的图书馆。顺便说一句,SVG是一种可以直接发出的文本格式

最后,您可以找到许多处理JPEG文件的库,例如

另外,你真的应该在网上找到一些与你的目标精神相似的小项目(例如,、等),并研究其源代码以获得灵感。通过这样做,你将学到很多实用的东西,并节省工作时间(因为你显然缺乏实用技能)


cpp预处理器来获得它。

除非您有一些代码,否则应该在“为什么您不能使用其他工具”上发布这些信息?如果这是家庭作业,请与老师讨论如果你是编程初学者,这看起来是一个雄心勃勃的项目。您将需要几个月的工作。@phuclv谢谢您,但有人说不使用工具还有其他方法可以做到这一点。但不是吗?我真的很感谢你的好意。我将更详细地研究这个答案