用G++编译时老报一些找不到头文件的错,但GCC就没有

用G++编译时老报一些找不到头文件的错,但GCC就没有,第1张

gcc、g++的编译路径中,这样使用时我们就可以不用加-l和-i了,方法如下:

1、在/etc/ld.so.conf文件中加入自定义的lib库的路径,然后执行/sbin/ldconfig,这个方法对所有的终端有效

2、在ld_library_paht中加路径:export

ld_library_path=你的库路径:$ld_library_path,这个方法在终端重启后就失效了

3、在/etc/profile中加入export

c_include_path=c_include_path:头文件路径

两次相对比一下,第二次增加了以下函数的实现,这部分是要编译成机器指令的,所以第二次这部分相当于是增加的。

int printf (const char *__format, ...)

{

  register int __retval

  __builtin_va_list __local_argv __builtin_va_start( __local_argv, __format )

  __retval = __mingw_vprintf( __format, __local_argv )

  __builtin_va_end( __local_argv )

  return __retval

}

那第二次减少了哪些呢?一点都没有,因为stdio这个头文件声明的函数和变量,都是在一个库中实现的,根本就不会包含在你的exe中,所以加不加stdio头文件没有区别。

要想验证这个也很简单:代码1

#include <stdio.h>

int main(){return 0}

代码2:

int main(){return 0}

比较这两次产生的exe是否一致即可。

注意,不能带有-g选项,-g选项会生成一些额外的调试信息


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11550407.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存