Windows下工程的配置:vs2010+opengl+opencv2.4.3+C++boost库1.53+eigen+vlfeat 0.9.16
需要转到linux下
1、关于互斥锁,window和linux对应的API:https://www.cnblogs.com/lvdongjie/p/4452256.html
2、#include
3、linux下没有strcat_s以及strcpy_s函数,对应的是strcat以及strcpy,这会限制strcpy_s缓存功能的使用。
4、windows下featrue.swap(vector
5、windows下的DWORD(也就是unsigned long)在linux没有定义
6、windows下的gettickcount linux下的clock_gettime
7、windows下的window.h linux下的#pragma comment(lib,"wsock32.lib")但是没用到
8、winDef.h中max和min,Linux没有相关定义可以用这个代替
#define max(a,b) (((a)>(b))?(a):(b))
9、对于opengl,linux下也可以用,GL/gl.h,然而有些gl的官方库有问题,于是工程中就引入了openglut.h这个非官方库,用的时候可以两个库一起用,但是会有冲突,需要把openglut_std.h中两个冲突的函数注释掉,具体的函数cmake会报错进行提示。如果只用openglut.h这个库,显示字符不好用。
10、pthread_create函数是在linux下使用的创建线程的函数。
11、类中static类型的函数,调用的时候需要声明类名称(类名称::函数)
12、windows下itoa函数,将int转换成char,linux下用sprintf,例如:
char buffer[20];
int n=123;
sprintf(buffer,"%d",n);
13、windows下的sprintf_s到linux下,如果不指定缓冲区,可以直接换成sprintf。
14、linux下没有getasynckeystate函数,实现方法可以参考,很好用,但是用的时候注意,只能定义一个kbhit函数,定义多了会有冲突。
15、windows下sleep()函数,形参是毫秒,linxu下
16、windows下互斥锁createMutex,linux下是pthread_mutex_t
17、linux下有dirent.h文件
18、opencv2XX版本有Nonfree函数,opencv3XX的没有,搞了好久,还是妥协了,重新装了opencv2.4.9
19、opencv的大坑,ROS自带3.3.1!!!!!!!!!搞了好久。。。。还得在cmakelists中设置找opecnv2.4.9库
20、_int64,linux下是long long
21、omp_get_num_procs@@OMP_1.0,这是什么错????自带表情包???解决方法:library_link(_fopenmp)
22、vl库问题,妥协了,编译不过去,不会链接库,只能把所有.c文件放入add_executable。
23、linux总是读文件食栢了,后来发现读的文件目录下,有中文名称的文件夹,cut除去就好了。