gcc get_http.c –lcurl啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gcc get_http.c –lcurl啥意思相关的知识,希望对你有一定的参考价值。

-lcurl是什么意思???

一、LibCurl基本编程框架
二、一些基本的函数
三、 curl_easy_setopt函数部分选项介绍
四、 curl_easy_perform 函数说明(error 状态码)
五、libcurl使用的HTTP消息头
六、多线程问题
七、什么时候libcurl无法正常工作
八、关于密码
九、HTTP验证
十、代码示例
1.基本的http GET/POST操作
2 获取html网页
3 网页下载保存实例
4 进度条实例显示文件下载进度
5 断点续传实例
参考技术A linux下编译代码时,添加的外部链接库。
添加这个库后,可以使用c++,pathon等各种语言进行网络连接。
这个库也支持http等多种网络协议。

#line 是啥意思?

【中文标题】#line 是啥意思?【英文标题】:What does #line mean?#line 是什么意思? 【发布时间】:2012-02-05 20:46:05 【问题描述】:

以下行是做什么的?

#line 25 "CSSGrammar.y"

那么扩展是什么?

【问题讨论】:

只是出于好奇......哪个编译器会吃这个? @Vyktor 它是标准的一部分 我确定这是重复的。看到这个:gcc.gnu.org/onlinedocs/cpp/Line-Control.html Duuude... 来自 google 的第一个链接:publib.boulder.ibm.com/infocenter/macxhelp/v6v81/… @Vyktor :)) 对,我认为谷歌不接受井号。 【参考方案1】:

根据标准:

§16.4.3:

表单的预处理指令

# line digit-sequence new-line

使实现表现得好像以下源代码行序列以源代码行开头 具有由数字序列指定的行号(解释为十进制整数)。如果数字 如果序列指定零或大于 2147483647 的数字,则行为未定义。

§16.4.4:

表单的预处理指令

# line digit-sequence " s-char-sequenceopt" new-line

类似地设置假定的行号并将源文件的假定名称更改为内容 字符串字面量。

§16.4.5:

表单的预处理指令

# line pp-tokens new-line

(与前两种形式之一不匹配)是允许的。行后的预处理标记 指令上的处理就像在普通文本中一样(当前定义为宏名称的每个标识符都是 替换为预处理标记的替换列表)。如果在所有替换后产生的指令 与前两种形式之一不匹配,行为未定义;否则,处理结果 视情况而定。

.y 扩展名正是作者选择使用的,也许是为了表明它是一个 YACC 文件(“语法”这个词也指出了这一点,尽管这只是一个猜测)。

【讨论】:

【参考方案2】:

它只是说明当前代码行来自CSSGrammar.y 的第 25 行,这是一个 YACC 样式的语法文件,是生成此代码的位置。

调试器可以使用它来单步执行语法本身,而不是生成的代码。

【讨论】:

不仅适用于调试器:它还可以帮助编译器指出正确的错误来源。【参考方案3】:

#line 指令修改编译器的报告位置,并被代码生成软件用来帮助程序员识别原始源代码中的问题。任何人都可以使用它来帮助重定向错误报告以提供更多信息。

因此,例如,您的解析器生成一个 CSSGrammar.cpp 文件,该文件由 c++ 编译器编译,其中包含 c++ sn-ps,#line 25 "CSSGrammar.y" 指令告诉 c++ 编译器处理文件中的特定点好像它是 CSSGrammar.y 中的第 25 行

编译器将在该指令的初始条件下继续解析后续行并报告错误。

因此,如果在 3 行之后发生错误,它将报告 CSSGrammar.y 中的第 28 行发生错误

请注意,单个源文件可以有来自多个部分的源;并且该指令可以非常有效地用于指示错误情况。

通常您会看到沿途有多个#line 指令;他们只是为了解释一路上的各种注射(如果你愿意,可以重置报告插入符号)。

请注意,任何生成器都可以使用#line 指令,包括您自己的生成器,并且无论如何都不限于解析器生成器。

【讨论】:

【参考方案4】:

编译器指示以下行是文件CSSGrammar.y 中的第25 行。然后,如果编译器在下 2 行检测到错误,则会将其报告为来自 CSSGrammar.y 的第 26 行

生成 C 文件的程序,如 bisonyaccflex、或ANTLR,甚至(已过时的)MELT 经常使用这种可能性。

如果生成调试信息(例如使用gcc -g),它将指向您示例中的CSSGrammar.y 文件。

【讨论】:

【参考方案5】:

“yacc”解析器生成器使用以 .y 结尾的文件,并发出包含 c 或 c++ 的文件。它添加了这些#line 行以允许调试器返回到您原来的原始源,不接受任何替代。

【讨论】:

【参考方案6】:

这是一个 c 预处理器选项。它告诉 c-parser 放弃它的源文件的行数,假装这是第 25 行。

有了这些信息,您可以更轻松地调试源文件。 yacc 文件将被翻译成 c 源代码,这是伪装的源代码行。

【讨论】:

【参考方案7】:

使用#line 会强制编译器忘记它正在编译的文件以及它所在的行,并加载新数据。

注意:编译器仍然从它所在的行开始编译。

【讨论】:

以上是关于gcc get_http.c –lcurl啥意思的主要内容,如果未能解决你的问题,请参考以下文章

这个 GCC 错误“... relocation truncated to fit...”是啥意思?

GCC 中 -x 标志的输入和输出“语言”是啥意思?

linux命令gcc–static式啥意思

role啥意思

icpc(或我猜是gcc)的预处理输出中的包含路径/数字是啥意思?

gcc 中-lfoo表示啥意思。 这个中gcc foo.c -L /home/lib -lfoo -o hello