❶ qnx 编译选项查看link哪些库
解决:
1.在该静态库的Taraget->Build Settings->Other Linker Flags->加上 -ObjC.
2.在使用该静态库的工程Taraget->Build Settings->Other Linker Flags->加上-all_load或-force_load.
三,编译warning:ld: warning: directory not found for option '-L'.
❷ linux,so文件qnx可用吗
so文件就是通常说的动态链接库,就跟windows下的dll文件差不多。 ko是内核模块文件,驱动之类的啥的。 不过在linux系统下文件的后缀多数情况下只是个标识,有可能代表不了文件的真实属性的。 至于怎么编写,就跟用VS编译dll或者lib文件差不多,...
❸ 如何在QNX下编译源码
1.<BUILD_ROOT>是指正确的目录,如E:\community.qnx.com\svn\repos\coreos_pub,里面有trunk,源码在里面。
2.如果不是在Neutrino
self-hosted下运行( then you will need to tell the build process to ignore
the content of the GNU configure style source moles.) 运行此命令,大概运行几分钟。(hide-gnu.sh可下载)
% ksh hide-gnu.sh <BUILD_ROOT>
3.创建目录(Create a staging directory for installed binaries and headers to go )
% cd <BUILD_ROOT>
% mkdir stage
4.按文档中方法建立qconf-override.mk文件,也是在<BUILD_ROOT>目录下。内容如下:
USE_INSTALL_ROOT=1
INSTALL_ROOT_nto=<BUILD_ROOT>/stage
VERSION_REL=6.3.0
注意一定要使用“/”换掉Windows的“\”
5.% export QCONF_OVERRIDE=<BUILD_ROOT>/qconf-override.mk
Windows下用set替代export.也可直接在我的电脑->环境变量里增加。还是要注意"/"问题。
6.基本没问题了,
内核:
% cd <BUILD_ROOT>/trunk
% make OSLIST=nto CPULIST=x86 hinstall
% make OSLIST=nto CPULIST=x86 install
网络:
% cd <BUILD_ROOT>/tags/6.4.0/GA
% make CPULIST=x86 install
or:
% cd <BUILD_ROOT>/trunk
% make CPULIST=ppc install
等等
❹ 如何在windows环境下搭建qnx编译环境
1.<BUILD_ROOT>是指正确的目录,如E:\community.qnx.com\svn\repos\coreos_pub,里面有trunk,源码在里面。
2.如果不是在Neutrino self-hosted下运行( then you will need to tell the build process to ignore the content of the GNU configure style source moles.) 运行此命令,大概运行几分钟。(hide-gnu.sh可下载)
% ksh hide-gnu.sh <BUILD_ROOT>
3.创建目录(Create a staging directory for installed binaries and headers to go )
% cd <BUILD_ROOT>
% mkdir stage
4.按文档中方法建立qconf-override.mk文件,也是在<BUILD_ROOT>目录下。内容如下:
USE_INSTALL_ROOT=1
INSTALL_ROOT_nto=<BUILD_ROOT>/stage
VERSION_REL=6.3.0
注意一定要使用“/”换掉Windows的“\”
5.% export QCONF_OVERRIDE=<BUILD_ROOT>/qconf-override.mk
Windows下用set替代export.也可直接在我的电脑->环境变量里增加。还是要注意"/"问题。
6.基本没问题了,
内核:
% cd <BUILD_ROOT>/trunk
% make OSLIST=nto CPULIST=x86 hinstall
% make OSLIST=nto CPULIST=x86 install
网络:
% cd <BUILD_ROOT>/tags/6.4.0/GA
% make CPULIST=x86 install
or:
% cd <BUILD_ROOT>/trunk
% make CPULIST=ppc install
等等
---------------------------------------------------------------------
问题:E:\Delores\QNX_SRC\coreos_pub\trunk\utils\r\rtc编译出错
无法找到头文件:
#include <hw/i2c.h>
看了一下common.mk,发现有下面的路径,联想fondry27上说的,hardware里面都是硬件相关的头文件,公开的源码里没有这个目录。看来是没办法编译rtc了,不过也没啥用。把rtc目录剪切掉继续编译。
EXTRA_INCVPATH = $(PROJECT_ROOT)/../../../lib/util/public
EXTRA_INCVPATH += $(PROJECT_ROOT)/../../../hardware/startup/lib/public
(可惜我不懂这是什么意思,于是我从BSP里随便找了个i2c.h放到D:\QNX640\target\qnx6\usr\include\hw目录下)
-----------------------------------------------------------------------------------
(这个我没遇到,因为我照着先做了,哈)
问题:编译textmode出错
找不到头文件。发现qnx640下根本没有这些东东。只有从632里复制了。
#include <graphics/display.h>
#include <graphics/disputil.h>
#include <graphics/vbios.h>
从E:\QNX632\target\qnx6\usr\include复制graphics目录到E:\QNX640\target\qnx6\usr\include下。
编译textmode通过。
❺ 在C++ Test中如何做基于QNX的单元测试
VectorCAST/C++™--C/C++的单元/集成测试
<什么是VectorCAST/C++>
VectorCAST/C++是一套集成的软件测试解决方案,能显着降低C/C++测试过程中为达到安全性检测和嵌入式系统关键任务检测所必需的时间、工作量及成本。
自动化包括:
>为单元测试和集成测试构建完整的测试环境
>基于脚本命令或GUI图形界面执行测试
>集成最好的需求管理系统和静态分析工具
>根据基本路径来自动生成测试用例
>根据测试需求自定义测试用例
>回归测试
>在调试阶段进行测试的回放
>代码覆盖分析
>支持敏捷开发和测试驱动开发(TDD)
❻ 怎样在c++中用boost asio
简介
Boost.Asio是一个跨平台的C++库,主要用于网络和其他一些底层的I/O编程。
在大量的网络编程库中,Boost.Asio是其中的佼佼者,它于2005年加入到Boost,已经被广泛的测试并且应用在多个项目中,如:
Remobo (http://www.remobo.com),用于创建瞬时专用网络(IPN)
libtorrent (http://www.rasterbar.com/procts/libtorrent), 用于实现BT的客户端
开源德州扑克游戏PokerTH (http://www. pokerth.net)
Boost.Asio成功的抽象了包括网络,串口、文件在内的同步和异步的I/O操作:
read(stream, buffer [, extra options])
async_read(stream, buffer [, extra options], handler)
write(stream, buffer [, extra options])
async_write(stream, buffer [, extra options], handler)
Boost.Asio支持大多数操作系统,轻量可扩展的,目前网络部分支持TCP, UDP, IMCP,可以很方便的扩展自定义协议。
历史
Boost.Asio于2003年开始开发,2005年12月加入到Boost 1.35,原始作者Christopher M. Kohlhoff。
支持的平台和编译器如下:
• 32位和64位Windows, Visual C++ 7.1及以上
• Windows, MinGW
• Windows , Cygwin (必须定义宏#define USE_232_SOCKETS)
• 基于2.4和2.6核心的Linux , g++ 3.3 及以上
• Solaris, g++ 3.3 及以上
• MAC OS X 10.4+, g++ 3.3 及以上
在其他平台也应该能正常工作,如:
AIX 5.3, HP-UX 11i v3, QNX Neutrino 6.3, Solaris using Sun Studio 11+, True64 v5.1, Windows using Borland C++ 5.9.2+ (consult at www.boost.org for more details).
依赖关系
Boost.Asio 依赖如下库:
• Boost.System: 必选,提供了操作系统底层函数的支持
• Boost.Regex: 可选,如果你使用了带boost::regex参数的read_until() 和 async_read_until()
• Boost.DateTime: 可选,如果你使用了定时器
• OpenSSL: 可选,如果需要SSL的支持
编译
Boost.Asio 是只有头文件的库,无需编译直接使用,但是你也可以编译成静态或者动态库, 减少程序的编译时间。
• 包含头文件 #include <boost/asio/impl/src.hpp>(如果使用SSL, 也要包含 #include <boost/asio/ssl/impl/src.hpp>), 而不是包含 <boost/asio.hpp>
• 在程序的源文件里定义宏 #define BOOST_ASIO_SEPARATE_COMPILATION
由于Boost.Asio 依赖Boost.System和Boost.Regex, 所以编译如下:
bjam –with-system –with-regex stage
如果你运行完整的测试,执行Asio自带的样例,建议编译如下:
bjam –with-system –with-thread –with-date_time –with-regex –with- serialization stage
注意如果定义了BOOST_ASIO_DISABLE_THREADS宏, 不论boost是否支持线程,asio将会不支持线程,
❼ 如何编译POCO
按需求修改完buildwin.cmd文件后,使用vs2010的Tools中“Visual Studio x64 Win64 命令提示(2010)”命令,进入命令行状态。转到Poco所在的根目录,直接输入命令:
buildwin 100 build all both x64 samples
最后需要注意的地方:
上述方法完成编译后,关于Data的MySQL、ODBC、SQLite三个库没有生成(原因不详),需要单独编译,在此以MySQL为例记录一下编译过程。在\Data\MySQL文件夹下,找到MySQL_vs100.sln文件,打开。
打开的工程是win32的,需要改为X64。在C++包含目录中添加本项目的include文件夹,例如:“C:\poco-1.5.1-all\Data\MySQL\include;”,还要添加安装的MySQL的include文件夹,例如“C:\Program Files\MySQL\MySQL Server 5.6\include”,在库目录中添加所需库的路径,例如“C:\Program Files\MySQL\MySQL Server 5.6\lib”。
注意:编译MySQL的Poco库,必须先安装MySQL。
设置好环境之后,就可以选择相应的配置(debug or release)进行编译。
编译完成后,生成的库在Poco根目录下的lib文件夹,如果是编译的动态库,则动态库在Poco根目录下的bin文件夹。