1.请问能用U盘做QNX下的启动盘吗?怎么做?
2.QNX下C语言的动态联接库怎么写?包括调用动态联接库的一端和被调用的动态联接库,能不能给一个简单的例子?
应该和硬盘一样处理吧,只要能认出来
动态联接库在写法上和一般的应用程序没什么不同,只是没有main函数。
但在编译的时候来指明是编译成动态联接库。
如果你有QNX下的IDE,在建立工程的时候选QNX C Project,然后在第二页把Type改一下就可以了。
如果是用gcc,就看看gcc的用法吧。
下面是IDE一下简单例子的make输出,也许你可以参考一下:
make -k all --file=D:/QNX630/ide4-workspace-test/testSharedLib/QMakefile20355.tmp
make -j 1 -Cx86 -fMakefile all
make[1]: Entering directory `D:/QNX630/ide4-workspace-test/testSharedLib/x86'
make -j 1 -Cso-g -fMakefile all
make[2]: Entering directory `D:/QNX630/ide4-workspace-test/testSharedLib/x86/so-g'
D:/QNX630/host/win32/x86/usr/bin/qcc -Vgcc_ntox86 -c -Wc,-Wall -Wc,-Wno-parentheses -I. -ID:/QNX630/ide4-workspace-test/testSharedLib/x86/so -ID:/QNX630/ide4-workspace-test/testSharedLib/x86/so-g -ID:/QNX630/ide4-workspace-test/testSharedLib/x86 -ID:/QNX630/ide4-workspace-test/testSharedLib -ID:/QNX630/target/qnx6/usr/include -g -shared -DVARIANT_so -DVARIANT_g D:/QNX630/ide4-workspace-test/testSharedLib/x86/testlib.c
D:/QNX630/host/win32/x86/usr/bin/rm -f D:/QNX630/ide4-workspace-test/testSharedLib/x86/so-g/libtestSharedLib_g.so
D:/QNX630/host/win32/x86/usr/bin/qcc -Vgcc_ntox86 -shared -Wl,-hlibtestSharedLib_g.so.1 -oD:/QNX630/ide4-workspace-test/testSharedLib/x86/so-g/libtestSharedLib_g.so testlib.o -L. -LD:/QNX630/target/qnx6/x86/lib -LD:/QNX630/target/qnx6/x86/usr/lib -g
D:/QNX630/host/win32/x86/usr/bin/rm -f D:/QNX630/ide4-workspace-test/testSharedLib/x86/so-g/libtestSharedLib_gS.a
D:/QNX630/host/win32/x86/usr/bin/ntox86-ar -r D:/QNX630/ide4-workspace-test/testSharedLib/x86/so-g/libtestSharedLib_gS.a testlib.o
make[2]: Leaving directory `D:/QNX630/ide4-workspace-test/testSharedLib/x86/so-g'
make[1]: Leaving directory `D:/QNX630/ide4-workspace-test/testSharedLib/x86'
不对吧,你说的是静态链接库,而不是动态链接库。
静态链接库在编译的时候将需要用到的代码嵌入到程序中,所以在运行该程序时,不论你调用还是不调用都要放入内存中的;
而动态链接库可以作为一个单独的文件,在程序运行中,需要调用的时候才由系统将它放入内存中运行,若不调用,那么八辈子也不会把它放入内存占用系统资源的。