GAMP|Visual Studio 环境下配置GAMP
1、所需源代码和依赖库文件所在位置:2、项目设置3、编译及error解决4、重新编译5、编译成功周锋博士在开源了一个项目:多系统 GNSS 非差非组合精密单点定位软件GAMP
GAMP: An open-source software of multi-GNSS precise point positioning using undifferenced and uncombined observations。
下载地址
https://www.ngs.noaa.gov/gps-toolbox/GAMP.htm
1、所需源代码和依赖库文件所在位置:
GAMP\mannual_GAMP\GAMP_src\Windows
2、项目设置
1)打开VS,新建一个Visual C++的空项目,保存路径和名称自行设定;
2)将GAMP\mannual_GAMP\GAMP_src\Windows\gamp_c\gamp_src目录复制到刚刚新建的项目中
3)分别在项目中将头文件.h和源文件.c文件添加相应位置!
4)修改项目属性:
【 配置属性 -> C/C++ ->预处理器 ->预处理器定义】添加如下:
WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions);_CRT_SECURE_N
O_WARNINGS;ENAGLO;ENACMP;ENAGAL;ENAQZS;NFREQ=3
【配置属性->链接器->调试->生成调试信息】 调整为 生成调式信息(/DEBUG)
【配置属性-> C/C++ ->常规->调试信息格式】调整为 C7
5)添加多线程依赖库
将GAMP\mannual_GAMP\GAMP_src\Windows\pthreads-w32-2-9-1-release目录拷贝到C盘
然后在项目中附加目录【配置属性-> C/C++ ->常规->附加目录】 添加 C:\pthreads-w32-2-9-1-release\Pre-built.2\include
【配置属性->链接器->常规->附加库目录】添加 C:\pthreads-w32-2-9-1-release\Pre-built.2\lib\x86
【属性->链接器->输入->附加依赖项】添加 pthreadVSE2.lib
6)添加Linux下C程序头文件unistd.h
mannual_GAMP\GAMP_src\Windows目录下面的两个文件unistd.h、dirent.h复制D:\Program
Files (x86)\Microsoft Visual
Studio\\Community\VC\Tools\MSVC\14.16.27023\include 下面(找到你安装的Visual Studio 的目录);
3、编译及error解决
完成以上设置和添加以后,点击【生成->生成解决方案】出现大量错误:
1)错误C4996’sprintf’: This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use
_CRT_SECURE_NO_WARNINGS. See online help for details.pppc:\users\cugch\desktop\gamp\test\ppp\ppp\gamp_src\gamppos.c374
解决方法:
【项目属性->配置属性->C/C+±>预处理器->预处理定义】添加两个宏
_CRT_SECURE_NO_DEPRECATE
_SCL_SECURE_NO_DEPRECATE
2)从新运行,出现错误:
错误C4703使用了可能未初始化的本地指针变量“lam”ppp gamppos.c571
解决方法:转到lam定义发现确实没有初始化,而是在后面直接赋值;修改代码,初始化的时候指向NULL;
Linux的c语言和Windows的c语言是有区别的吧!
3)从新运行,出现错误:
错误:无法打开unistd.h
将./mannual_GAMP\GAMP_src\Windows中的dirent.h&unistd.h两个文件复制到
D:\Program Files (x86)\Microsoft Visual Studio\\Community\VC\Tools\MSVC\14.29.30133\include
或者复制到D:\Program Files (x86)\Microsoft Visual Studio\\Community\VC\Tools\MSVC\14.29.30037\include