随笔分类 -  编程语言-C++

LINUX 上程序编译常见问题
摘要:1,error: extra qualification 编译器版本不同引起的问题g++编译错误error: extra qualification '。。。。。。', 我的代码最开始在另一台机器上编译, 没有问题, 换到这台之后, 就出这个错, 最初的感受就是很诧异, 其实代码是有错的, 只不过最初那台机器上的编译器版本低, 忽略这个错误而已(当然,忽略了程序运行也对).最初的版本是gcc version 3.4.5 , 后来那台的版本是: gcc version 4.1.2.错误的原因是: 在类的定义中写了void 类名::方法名(); 在类中应该写 void 方法名(); 阅读全文
posted @ 2012-12-10 15:19 KYLIX 阅读(276) 评论(0) 推荐(0)
C++函数捕获Ctrl+C方法
摘要:我们在UNIX的系统上,用CTRL+C表示退出当前进程,在这种退出当前进程的情况下,调用某个服务进程 实现方法: 1)在当前需要加捕获的地方,增加如下代码 1 struct sigaction newhandler; 2 newhandler.sa_handler = &mysighandler; 3 sigaddset(&newhandler.sa_mask, SIGQUIT); 4 newhandler.sa_flags = 0; 5 sigaction(SIGINT, &newhandler, NULL); 2)然后再增加如下的方法来写捕获到CTRL+... 阅读全文
posted @ 2012-11-13 10:18 KYLIX 阅读(1446) 评论(0) 推荐(0)
[c、c++]宏中"#"和"##"的用法-转载
摘要:宏中"#"和"##"的用法一、一般用法我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起.用法:#include<cstdio>#include<climits>using namespace std; #define STR(s) #s#define CONS(a,b) int(a##e##b)int main(){ printf(STR(vck)); // 输出字符串"vck" printf("%d\n", CONS(2,3)); // 2e3 输出:2000 return 阅读全文
posted @ 2011-06-16 10:46 KYLIX 阅读(365) 评论(0) 推荐(2)
在LINUX上一个变态的C++编译提示"undefined reference to"的问题
摘要:上次编译的时候遇到一个undefined reference to的问题,提示某个类上的静态函数A无法找到,具体情况如下 1)当前类下的所有静态函数都找不到 2)但是同一个库中的其他类的静态函数都找得到 3)比较过几个库的头文件或则引用都没啥问题 4)A函数是在C库中引用的,当前执行程序B引用了C库的某个方法,调用到了A。直接编译的时候提示找不到A函数。但是如果直接在B执行程序中直接调用A函数,则加了这个调用就能编译过了后来通过分析得到,可能不是代码的问题,而是连接器连接的时候未能找到当前库下的函数, 处理方法:在引用库的时候将现有引用库多循环几次,重复引用,编译就能通过了。备注:AIX上没有 阅读全文
posted @ 2011-05-24 13:10 KYLIX 阅读(1786) 评论(0) 推荐(0)
VS2008中C++引用函数以及其他类中的类型的主要需要注意的地方
摘要:主要需要注意如下几个方面的检查(1) 对于头文件的引用 在项目属性-》C++-》常规-》附件包含目录 中写上需要引用过的头文件路径,如果头文件在多个地方定义,则需要将多个地方都写出来,并且注意其引用关系(2)对于库文件的引用 在项目属性-》链接器-》常规-》附件库目录 中写当前需要引用的库文件的路径 在项目属性-》链接器-》输入-》附件依赖项 中写上需要引用的库名称,如果有多项则写多项(3)如果是C++中库中的类型或者函数的引用 注意需要增加上命令空间,或者用命名空间上来访问 阅读全文
posted @ 2011-05-24 13:01 KYLIX