OpenFlight API调用之一--编译自己的程序
2012-10-22 21:49
295 查看
前一篇文章说我要开发自己的类似ObjectPropertyEditor的工具,这两天就开始着手做这件事情了。
前文说到,要做这样一个工具,需要使用OpenFlight API,也就是MultiGen Creator提供的一套函数接口。所以我做的第一件事情就是开始读OpenFlight API的说明文档,全英文的,不是太容易看懂,看了两页我已经坚持不下去了,希望有大神能把这些东西翻译出来!
还好有Sample,编译了两个运行了一下,发现没有提供可视化的界面,不过我最需要的遍历模型节点的功能已经实现了,很好!然后就自己动手写了一个小程序,竟然编译不通过!仔细查看代码,发现并没有什么问题。也许是有什么错误隐藏着,自己不能发现吧。于是直接将Sample中的代码Copy出来,再编译,还是出错!百思不得其解!
折腾了一整晚上,连睡觉也在想这件事情,总算没白想,让我发现了其中的奥秘了:代码都一样的,Sample能编译通过并且正常运行,自己的程序确编译不过?问题在哪里?代码是一样的,哪里不一样?答对了,就是工作空间的设置不一样!
于是凌晨两点半起来打开电脑,打开Sample工程和自己创建的工程,分别打开Project->Settings,里面General、Debug、C/C++、Link等一项一项的对比,终于找到问题了。在Sample工程中,Project->Settings->C/C++->Precompile Definition中设置为_DEBUG,WIN32,_CONSILE,API_LEVEL2,而我自己的工程中这一项设置为WIN32,_DEBUG,_CONSOLE,_MBCS。剩下的事情就简单了,依葫芦画瓢,将设置改过来就可以了。
最后,还需要在Project->Settings->Link下面的Object/Libs中添加所需要的OpenFlight Lib文件,这是为了保证程序能够正确加载所需要的动态库完成API指定的功能,否则会出现unresolved external symbol错误。
前文说到,要做这样一个工具,需要使用OpenFlight API,也就是MultiGen Creator提供的一套函数接口。所以我做的第一件事情就是开始读OpenFlight API的说明文档,全英文的,不是太容易看懂,看了两页我已经坚持不下去了,希望有大神能把这些东西翻译出来!
还好有Sample,编译了两个运行了一下,发现没有提供可视化的界面,不过我最需要的遍历模型节点的功能已经实现了,很好!然后就自己动手写了一个小程序,竟然编译不通过!仔细查看代码,发现并没有什么问题。也许是有什么错误隐藏着,自己不能发现吧。于是直接将Sample中的代码Copy出来,再编译,还是出错!百思不得其解!
折腾了一整晚上,连睡觉也在想这件事情,总算没白想,让我发现了其中的奥秘了:代码都一样的,Sample能编译通过并且正常运行,自己的程序确编译不过?问题在哪里?代码是一样的,哪里不一样?答对了,就是工作空间的设置不一样!
于是凌晨两点半起来打开电脑,打开Sample工程和自己创建的工程,分别打开Project->Settings,里面General、Debug、C/C++、Link等一项一项的对比,终于找到问题了。在Sample工程中,Project->Settings->C/C++->Precompile Definition中设置为_DEBUG,WIN32,_CONSILE,API_LEVEL2,而我自己的工程中这一项设置为WIN32,_DEBUG,_CONSOLE,_MBCS。剩下的事情就简单了,依葫芦画瓢,将设置改过来就可以了。
最后,还需要在Project->Settings->Link下面的Object/Libs中添加所需要的OpenFlight Lib文件,这是为了保证程序能够正确加载所需要的动态库完成API指定的功能,否则会出现unresolved external symbol错误。
相关文章推荐
- OpenFlight API调用之二--头文件命名规则
- Android NDK编程,我的第一个hello-jni程序,如何调用自己编译的so库
- Android编译调用FFmpeg API,自己写方法,编译so库
- linux下GCC 编译sqlite 调用sqliteAPI编写程序
- vc socket 多线程 (记录一次自己调用window 底层API编写 vc socket 多线程的服务器网络程序)
- windows命令行下随时随地调用csc编译器的方法(解决dos下编译.net程序找不到CSC的问题)
- pixhawk 烧写自己编译的程序需要重新插拔或不能正常连接QGC的解决方法
- 编译自己的程序到openwrt固件中去
- 编译boost程序出现如下错误fatal error LNK1104: cannot open file 'libboost_system-vc100-mt-gd-1_54.lib'的解决方法
- 使用静态库时需要注意的事项(gcc下程序调用静态库编译命令:主文件必须在静态库前面!)
- 【转】C#生成dll文件:如何用C#编译生成dll文件即动态链接库文件供其它程序调用
- 调用一般处理程序 提供接口api
- android调用第三方库——第三篇——编写库android程序整合第三方库libhello.so到自己的库libhelloword.so
- 如果C++程序要调用已经被编译后的C函数,该怎么办?
- 有了这些免费无限次的API 接口,再也不愁没有服务器开发不了APP了,也可以自己开发小程序了
- Using OpenAPI with C++[2] _VC调用WebService
- 配置自己的OpenGL库,glew、freeglut库编译,库冲突解决(附OpenGL Demo程序)
- 以root权限运行自己所编译程序的方法
- ubuntu下使用eclipse调用libpcap库编写一个小程序时出的错误:pcap.h没有参与编译
- [原创]分享本人自己PY写的BOOST编译程序(源码)