implicit declaration of function 'asprintf' 警告的解决
2015-07-09 15:03
1566 查看
asprintf使用起来非常方便,但是它是GNU扩展的C函数库,使用的时候经常会有如下警告:
warning: implicit declaration of function 'asprintf' [-Wimplicit-function-declaration]
调查发现asprintf的头文件是stdio.h,在该头文件中
但是__USE_GNU是glibc内容的宏定义,我们不能在自己的代码中定义,因此要怎么解决呢?
解决方法:
在makefile中加入编译选项 -D_GUN_SOURCE
如果是用CMake,需加入add_definitions (-D_GNU_SOURCE)
如果遇到类似因#ifdef __USE_GNU引起的问题,可以通过如上设定尝试解决。
asprintf使用起来非常方便,但是它是GNU扩展的C函数库,使用的时候经常会有如下警告:
warning: implicit declaration of function 'asprintf' [-Wimplicit-function-declaration]
调查发现asprintf的头文件是stdio.h,在该头文件中
#ifdef __USE_GNU /* Write formatted output to a string dynamically allocated with `malloc'. Store the address of the string in *PTR. */ extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, _G_va_list __arg) __THROW __attribute__ ((__format__ (__printf__, 2, 0))) __wur; extern int __asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) __THROW __attribute__ ((__format__ (__printf__, 2, 3))) __wur; extern int asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) __THROW __attribute__ ((__format__ (__printf__, 2, 3))) __wur; #endif
但是__USE_GNU是glibc内容的宏定义,我们不能在自己的代码中定义,因此要怎么解决呢?
解决方法:
在makefile中加入编译选项 -D_GUN_SOURCE
如果是用CMake,需加入add_definitions (-D_GNU_SOURCE)
如果遇到类似因#ifdef __USE_GNU引起的问题,可以通过如上设定尝试解决。
相关文章推荐
- aspx、ashx以及cs的关系,viewState
- asp.net(c#)网页跳转七种方法小结
- ASP.NET - 对URL传递的值进行编码Server.UrlEncode()
- 关于asp.net获取数据库时间前台绑定年月日的方法
- aspCms 标签大全
- ASP.NET - 网页重定向 Response.Redirect()
- asp.net 获取进程。。杀到进程
- ASP.NET Web API 2 - 简单Unit Testing
- IIS站点报拒绝访问Temporary ASP.NET Files的解决办法
- ASP.NET sync over async
- ASP.NET MVC Boilerplate简介
- ASP.NET浏览器跨域
- 给Asp.Net MVC及WebApi添加路由优先级
- ASP.NET MVC Boilerplate简介
- ASP.NET通过Global.asax和Timer定时器 定时调用WebService 运行后台代码
- Asp.net Vnext ModelBinding
- ASP.NET MVC 4 (三) 过滤器
- asp.net 利用多表联合查询进行汇总统计
- 项目开发中的小问题解决-----asp.net当后台传值到前台方法中 0001变成1 解决方法
- 在asp.net 中应用POST传递和接收XML文件以及参数.(转)