vs/gcc项目编译相关总结-unsafe函数、多个头/源文件

前一段时间一直使用强大的php编程神器,现在换了一个部门使用C/C++,简直要了老命了,对于一个一直在windows下使用C语言单片机IDE开发的人来说,写C++实在是有些难。对于建工程什么的都还好说,代码实现的也很快,到了调试时要死了,好多问题一下子蹦出来了,多个自定义的头文件,我喜欢将函数功能实现放在一个源文件了,通过头文件声明后,在不同的文件中使用,在编译时vs十分不给力提示“编译时遇到文件尾,是否忘记包含stadx.h”搞了许久找不到原因,后来索性关闭了“预编译头指针”才得以解决,解决步骤为:项目->项目名属性->C/C++->预编译头,在右侧预编译头改为不使用预编译头即可。这样就可以按照我们包含的文件的规则进行相关编译文件了。

vs/gcc项目编译相关总结-unsafe函数、多个头/源文件_第1张图片

vs/gcc项目编译相关总结-unsafe函数、多个头/源文件_第2张图片

在实现了使用自己定义的头文件和源文件编译工程可行后,新的让人头疼的事情又出现了,好多函数vs认为不安全建议使用其他的函数代替,然而代替后在vs上是可以跑通了,但在服务器上就又出现问题了,gcc版本不认,怎么办。以为最后我的程序是要在linux上跑的,所以服务器的版本为主,这里我就直接去掉不安全函数的警告,具体操作如下:”项目”–>”xx属性”–>”C/C++”–>”预处理器”–>”预处理器定义”,在”预处理器定义”中添加_CRT_SECURE_NO_WARNINGS,这样就完全依赖于自己的代码,和使用的基础库了,不会以为vs重新支持的函数库所干扰。具体如图所示:

vs/gcc项目编译相关总结-unsafe函数、多个头/源文件_第3张图片

 


 当代码迁移到linux下,有没有小伙伴像我一样,在windows下运行正常,而在linux下使用gcc编译都过不去,这里就要提醒下伙伴了,是不是您的代码中好多个源文件和自定义的头文件,之间还相互调用,如果这样的话,记得指定编译时依赖的头文件的目录,例如又有一个名为shoubai.cpp的源文件,此文件中包含的头文件为active_hour.h,该头文件的实现在active_hour.cpp中,如果三个文件在同一个文件夹下,则使用的命令如下:

g++ -o calc shoubai.cpp active_hour.cpp -I.

如果多个文件一起编译有问题,key选择单个编译后在连接,也可以使用makefile实现,这里就不说明makefile实现方式了,因为我还没有尝试,只知道可以实现。实现如下:

g++ -c shoubai.cpp
g++ -c active_hour.cpp
g++ -o shoubai.o active_hour.o

 

你可能感兴趣的:(工具类)