关于项目中的一记录和心得
2018-03-13 13:04
281 查看
1.全局变量和全局函数的使用:
当一个项目中两个文件A.cpp,B.cpp之间没有存在必然的联系,A.cpp中需要获取B.cpp中定义的一些数据内容,可以通过使用全局变量来实现这个功能。比如在项目车辆二次识别中,在输入解析时需要获取批量输入时的图片的Id(std::string),然后将其放入容器vector中,在B.cpp中需要获取图片Id,并加以整合输出组装json,但是B.cpp和A.cpp之间没有继承关系,也不存在友元关系,并且框架已经搭好,只能通过全局变量和函数来实现。
在A.cpp中定义全局变量 std::vector<std::string> vecImageId; 在B.cpp中使用extern std::vector<std::string> vecImageId;
这样就可以解决编译的时候double define的问题。
2.当链接的时候报 ld return 1的错误时,多半是链接器在库路径中找不到库文件,或者在项目配置的时候出现问题。
首先得确保库文件已经存在,并且库文件的路径正确包含,并且已经添加库文件。已vs2017中添加curl库为例
库的路径:
保证库的附加库目录中存在所需要的库文件。
接下来配置环境变量通过配置是export LD_LIBRARY_PATH=/home/kiseeto/ImageObjectExtractionService/lib
3.关于内存使用的问题:
a.一般在c/c++项目中经常要是用自己动态分配的内存。
clss A;
A* pA = new A();
对于指针pA来说不能做地址的便宜,如果需要对pA来做地址偏移可以来找到一个替身,对pA做拷贝,让替身做指针的偏移工作,否则在释放pA所指向的内存空间,会报错。
b.要做到动态内存分配以后,并且赋值也使用完毕,并且数据处理也完毕以后,要做到随即释放内存空间。
比如在车辆二次识别的项目中,当输入解析完成以后,经过sdk算法以后会生成一个json的字符串,然后将字符串解析,在解析过程中会涉及到动态内存的分配,解析完成以后需要将数据重新组装成新的json字符串。组装完成以后需要对动态分配的内存及时的释放。
当一个项目中两个文件A.cpp,B.cpp之间没有存在必然的联系,A.cpp中需要获取B.cpp中定义的一些数据内容,可以通过使用全局变量来实现这个功能。比如在项目车辆二次识别中,在输入解析时需要获取批量输入时的图片的Id(std::string),然后将其放入容器vector中,在B.cpp中需要获取图片Id,并加以整合输出组装json,但是B.cpp和A.cpp之间没有继承关系,也不存在友元关系,并且框架已经搭好,只能通过全局变量和函数来实现。
在A.cpp中定义全局变量 std::vector<std::string> vecImageId; 在B.cpp中使用extern std::vector<std::string> vecImageId;
这样就可以解决编译的时候double define的问题。
2.当链接的时候报 ld return 1的错误时,多半是链接器在库路径中找不到库文件,或者在项目配置的时候出现问题。
首先得确保库文件已经存在,并且库文件的路径正确包含,并且已经添加库文件。已vs2017中添加curl库为例
库的路径:
保证库的附加库目录中存在所需要的库文件。
接下来配置环境变量通过配置是export LD_LIBRARY_PATH=/home/kiseeto/ImageObjectExtractionService/lib
3.关于内存使用的问题:
a.一般在c/c++项目中经常要是用自己动态分配的内存。
clss A;
A* pA = new A();
对于指针pA来说不能做地址的便宜,如果需要对pA来做地址偏移可以来找到一个替身,对pA做拷贝,让替身做指针的偏移工作,否则在释放pA所指向的内存空间,会报错。
b.要做到动态内存分配以后,并且赋值也使用完毕,并且数据处理也完毕以后,要做到随即释放内存空间。
比如在车辆二次识别的项目中,当输入解析完成以后,经过sdk算法以后会生成一个json的字符串,然后将字符串解析,在解析过程中会涉及到动态内存的分配,解析完成以后需要将数据重新组装成新的json字符串。组装完成以后需要对动态分配的内存及时的释放。
相关文章推荐
- 【记录】关于Eclipse的Maven项目导入自定义的其他Maven项目的问题
- 心得体会:关于开发效率和项目周期的问题
- 记录一次项目经历,关于stm32的“共地”
- 关于项目管理的xx讲座心得
- 关于UITableViewCell的自适应高度使用后的心得记录
- 关于Spring-Mybatis项目多数据源配置应用的心得
- 关于录音录像软件项目的记录
- 关于AudioManager在项目中遇到的一些问题的记录
- 參加《全流程全要素的研发项目管理》培训记录与心得
- 关于项目中hibernate无法删除中间表记录
- 关于马钢项目的开发心得
- 关于项目“结对编程”的分析与心得
- 项目开发感悟记录四:关于命名的思考
- 关于2048小游戏项目的一些心得
- 记录下关于安卓项目集成微信支付的过程
- 2012.10.08 关于 开发计划制定、项目管理、功能设计 的想法记录
- 个人阅读作业2:关于项目经历的心得
- 关于Eclipse注解项目ButterKnife的使用,记录而已。
- 关于最近项目中配置tomcat7.0.6的多个虚拟目录路径的解决方法的记录
- 关于Apache 工具包的一些记录,希望以后项目可以多多使用。