免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7648 | 回复: 7
打印 上一主题 下一主题

链接*.a文件出现 undefined reference to [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-02 16:58 |只看该作者 |倒序浏览
  1. g++ -o OGLES2IntroducingPVRShell OGLES2IntroducingPVRShell.o PVRShellAPI.o PVR    Shell.o PVRShellOS.o -L~/workspace/Magicube/Irrlicht/Linux/libIrrlicht.a -L~/w    orkspace/Magicube/MagicubeSDK/Linux/libmcSDK.a -lEGL -lX11 -lGL
复制代码
错误:OGLES2IntroducingPVRShell.o: In function `OGLESIntroducingPVRShell::InitView()':
OGLES2IntroducingPVRShell.cpp.text+0x1a7): undefined reference to `createPVRShellApp'
collect2: ld returned 1 exit status

libmcSDK.a文件里由我想要的createPVRShellApp函数。我确定他已经编译进去了:
  1. maadiah@localhost $ nm CAPIWindows.o
  2. 00000000000009dd t _GLOBAL__I_createIrrDrawContext
  3.                  U _Unwind_Resume
  4. 0000000000000998 t _Z41__static_initialization_and_destruction_0ii
  5.                  U _ZN2mx4site7CMxSiteC1EN3irr4core6stringIcNS3_12irrAllocatorIcEEEEPNS_4base12IMxConfigureEPNS8_12IMxNavEngineEPNS8_12IMxUIServiceEPNS8_14IMxFileServiceEPNS8_16IMxThreadServiceEPNS8_9IMxLoggerE
  6.                  U _ZN2mx5stage18CMagicCubeAppStageC1EPNS_4base7IMxSiteEPNS2_12IDrawContextE
  7.                  U _ZN2mx7context15CIrrDrawContextC1EPN3irr5video13IVideoContextEPNS3_12IVideoDriverEPNS2_6ITimerEPNS2_4font11IFontEngineE
  8. 0000000000000ae0 r _ZN3irr3guiL16GUISkinFontNamesE
  9. 00000000000009e0 r _ZN3irr3guiL16GUISkinIconNamesE
  10. 0000000000000760 r _ZN3irr3guiL16GUISkinSizeNamesE
  11. 0000000000000880 r _ZN3irr3guiL16GUISkinTextNamesE
  12. 0000000000000460 r _ZN3irr3guiL16GUISkinTypeNamesE
  13. 00000000000001a0 r _ZN3irr3guiL17GUIAlignmentNamesE
  14. 0000000000000580 r _ZN3irr3guiL17GUISkinColorNamesE
  15. 00000000000003e0 r _ZN3irr3guiL19GUIButtonStateNamesE
  16. 00000000000002c0 r _ZN3irr3guiL19GUIElementTypeNamesE
  17. 0000000000000ba0 r _ZN3irr3guiL20GUIOrderingModeNamesE
  18. 0000000000000b40 r _ZN3irr3guiL22GUIColumnOrderingNamesE
  19. 0000000000000000 W _ZN3irr4core12irrAllocatorINS0_8CMatrix4IfEEE10deallocateEPS3_
  20. 0000000000000000 W _ZN3irr4core12irrAllocatorINS0_8CMatrix4IfEEE12internal_newEm
  21. 0000000000000000 W _ZN3irr4core12irrAllocatorINS0_8CMatrix4IfEEE15internal_deleteEPv
  22. 0000000000000000 W _ZN3irr4core12irrAllocatorINS0_8CMatrix4IfEEE8destructEPS3_
  23. 0000000000000000 W _ZN3irr4core12irrAllocatorINS0_8CMatrix4IfEEEC1Ev
  24. 0000000000000000 W _ZN3irr4core12irrAllocatorINS0_8CMatrix4IfEEED0Ev
  25. 0000000000000000 W _ZN3irr4core12irrAllocatorINS0_8CMatrix4IfEEED1Ev
  26. 0000000000000000 W _ZN3irr4core12irrAllocatorIcE10deallocateEPc
  27. 0000000000000000 W _ZN3irr4core12irrAllocatorIcE12internal_newEm
  28. 0000000000000000 W _ZN3irr4core12irrAllocatorIcE15internal_deleteEPv
  29. 0000000000000000 W _ZN3irr4core12irrAllocatorIcE8allocateEm
  30. 0000000000000000 W _ZN3irr4core12irrAllocatorIcEC1Ev
  31. 0000000000000000 W _ZN3irr4core12irrAllocatorIcED0Ev
  32. 0000000000000000 W _ZN3irr4core12irrAllocatorIcED1Ev
  33. 0000000000000000 W _ZN3irr4core6stringIcNS0_12irrAllocatorIcEEEC1ERKS4_
  34. 0000000000000000 W _ZN3irr4core6stringIcNS0_12irrAllocatorIcEEEC1IcEEPKT_
  35. 0000000000000000 W _ZN3irr4core6stringIcNS0_12irrAllocatorIcEEED1Ev
  36. 0000000000000000 W _ZN3irr4core6stringIcNS0_12irrAllocatorIcEEEaSERKS4_
  37. 0000000000000000 W _ZN3irr4core6stringIcNS0_12irrAllocatorIcEEEaSIcEERS4_PKT_
  38. 0000000000000000 W _ZN3irr4core8CMatrix4IfED1Ev
  39. 0000000000001578 r _ZN3irr4coreL10DEGTORAD64E
  40. 0000000000001580 r _ZN3irr4coreL10RADTODEG64E
  41. 0000000000001554 r _ZN3irr4coreL13RECIPROCAL_PIE
  42. 0000000000000000 b _ZN3irr4coreL14locale_currentE
  43. 0000000000001568 r _ZN3irr4coreL15RECIPROCAL_PI64E
  44. 00000000000015a0 r _ZN3irr4coreL15fast_atof_tableE
  45. 0000000000001540 r _ZN3irr4coreL18ROUNDING_ERROR_S32E
  46. 0000000000001544 r _ZN3irr4coreL18ROUNDING_ERROR_f32E
  47. 0000000000001548 r _ZN3irr4coreL18ROUNDING_ERROR_f64E
  48. 0000000000001550 r _ZN3irr4coreL2PIE
  49. 0000000000001560 r _ZN3irr4coreL4PI64E
  50. 0000000000001558 r _ZN3irr4coreL7HALF_PIE
  51. 0000000000001570 r _ZN3irr4coreL8DEGTORADE
  52. 0000000000001574 r _ZN3irr4coreL8RADTODEGE
  53. 0000000000000010 b _ZN3irr5scene6quake3L15irrEmptyStringcE
  54. 0000000000000f10 r _ZN3irr5sceneL16B3D_TEXTURE_PATHE
  55. 0000000000000db0 r _ZN3irr5sceneL16CSM_TEXTURE_PATHE
  56. 0000000000000e30 r _ZN3irr5sceneL16DMF_TEXTURE_PATHE
  57. 0000000000000e98 r _ZN3irr5sceneL16OBJ_TEXTURE_PATHE
  58. 0000000000000dd0 r _ZN3irr5sceneL17LMTS_TEXTURE_PATHE
  59. 0000000000000df0 r _ZN3irr5sceneL17MY3D_TEXTURE_PATHE
  60. 0000000000000f68 r _ZN3irr5sceneL18DEBUG_NORMAL_COLORE
  61. 0000000000000f48 r _ZN3irr5sceneL19DEBUG_NORMAL_LENGTHE
  62. 0000000000000c00 r _ZN3irr5sceneL21AutomaticCullingNamesE
  63. 0000000000000e68 r _ZN3irr5sceneL21DMF_ALPHA_CHANNEL_REFE
  64. 0000000000000c60 r _ZN3irr5sceneL22BoneAnimationModeNamesE
  65. 0000000000000e80 r _ZN3irr5sceneL23DMF_FLIP_ALPHA_TEXTURESE
  66. 0000000000000eb8 r _ZN3irr5sceneL24OBJ_LOADER_IGNORE_GROUPSE
  67. 0000000000000cc0 r _ZN3irr5sceneL24ParticleEmitterTypeNamesE
  68. 0000000000000e50 r _ZN3irr5sceneL25DMF_IGNORE_MATERIALS_DIRSE
  69. 0000000000000d40 r _ZN3irr5sceneL25ParticleAffectorTypeNamesE
  70. 0000000000000d98 r _ZN3irr5sceneL27ALLOW_ZWRITE_ON_TRANSPARENTE
  71. 0000000000000f28 r _ZN3irr5sceneL27IRR_SCENE_MANAGER_IS_EDITORE
  72. 0000000000000ef8 r _ZN3irr5sceneL29B3D_LOADER_IGNORE_MIPMAP_FLAGE
  73. 0000000000000e18 r _ZN3irr5sceneL30COLLADA_CREATE_SCENE_INSTANCESE
  74. 0000000000000ed8 r _ZN3irr5sceneL32OBJ_LOADER_IGNORE_MATERIAL_FILESE
  75. 0000000000000000 W _ZN3irr5video14SMaterialLayerC1Ev
  76. 0000000000000000 W _ZN3irr5video14SMaterialLayerD1Ev
  77.                  U _ZN3irr5video21CPVRShellVideoContextC1EjjbNS0_13ECOLOR_FORMATEPvS3_S3_
  78. 0000000000000000 W _ZN3irr5video6SColorC1Ejjjj
  79. 0000000000000000 W _ZN3irr5video9SMaterialC1Ev
  80. 0000000000000000 W _ZN3irr5video9SMaterialD1Ev
  81. 0000000000001380 r _ZN3irr5videoL12FogTypeNamesE
  82. 0000000000001520 r _ZN3irr5videoL14LightTypeNamesE
  83. 00000000000012c0 r _ZN3irr5videoL18aTextureClampNamesE
  84. 0000000000001308 r _ZN3irr5videoL21MATERIAL_MAX_TEXTURESE
  85. 0000000000001480 r _ZN3irr5videoL23PIXEL_SHADER_TYPE_NAMESE
  86. 0000000000001340 r _ZN3irr5videoL23sBuiltInVertexTypeNamesE
  87. 00000000000013e0 r _ZN3irr5videoL24VERTEX_SHADER_TYPE_NAMESE
  88. 0000000000001100 r _ZN3irr5videoL25sBuiltInMaterialTypeNamesE
  89. 00000000000014f0 r _ZN3irr5videoL26GEOMETRY_SHADER_TYPE_NAMESE
  90. 0000000000000000 W _ZNK3irr17IReferenceCounted4dropEv
  91. 0000000000000000 W _ZNK3irr4core6stringIcNS0_12irrAllocatorIcEEE4sizeEv
  92. 0000000000000000 W _ZNK3irr4core6stringIcNS0_12irrAllocatorIcEEE5c_strEv
  93. 0000000000000000 V _ZTIN3irr4core12irrAllocatorINS0_8CMatrix4IfEEEE
  94. 0000000000000000 V _ZTIN3irr4core12irrAllocatorIcEE
  95. 0000000000000000 V _ZTSN3irr4core12irrAllocatorINS0_8CMatrix4IfEEEE
  96. 0000000000000000 V _ZTSN3irr4core12irrAllocatorIcEE
  97.                  U _ZTVN10__cxxabiv117__class_type_infoE
  98. 0000000000000000 V _ZTVN3irr4core12irrAllocatorINS0_8CMatrix4IfEEEE
  99. 0000000000000000 V _ZTVN3irr4core12irrAllocatorIcEE
  100. 0000000000001600 r _ZZNK3irr17IReferenceCounted4dropEvE19__PRETTY_FUNCTION__
  101.                  U _ZdlPv
  102.                  U _Znwm
  103.                  U __assert_fail
  104.                  U __cxa_atexit
  105.                  U __dso_handle
  106.                  U __gxx_personality_v0
  107. 0000000000000000 T createIrrDrawContext
  108. 000000000000016f T createMagicCubeApp
  109. 0000000000000091 T createMxSite
  110. 00000000000005a8 T createPVRShellApp
  111.                  U createStub
  112. 00000000000001f0 T createWindowsApp
复制代码
函数源码:
  1. extern "C" MAGICUBE_API IMagicCubeApp* MXCALLCONV createPVRShellApp(int screenWidth,int screenHeight)
  2.                 {
  3.                         //////////////////////////////////////////////////////////////////////////                       
  4.                         irr::IIrrlichtStub*        mStub = irr::createStub();       
  5.                         // 自定义适用于PVRShell下的VideoContext       
  6.                         irr::video::IVideoContext* context = new irr::video::CPVRShellVideoContext(screenWidth,screenHeight);
  7.                         video::IVideoDriver* driver = mStub->createVideoDriver(context);
  8.                         irr::ITimer* timer = mStub->createTimer();
  9.                         irr::font::IFontEngine* fontengine = mStub->createFontEngine();
  10.                         fontengine->addFont((L"c:\\windows\\fonts\\simsun.ttc"),(L"simsun"),(L"simsun"),false,false);
  11.                         fontengine->addFont((L"c:\\windows\\fonts\\simhei.ttf"),(L"simhei"),(L"simhei"),false,false);

  12.                         video::SMaterial mat;// 设置材质
  13.                         mat.BackfaceCulling = true;mat.Lighting =false;mat.Wireframe = true;
  14.                         mat.DiffuseColor = video::SColor(255,255,255,255);        driver->setMaterial(mat);

  15.                         IDrawContext* mIrrDrawContext = new mx::context::CIrrDrawContext(context,driver,timer,fontengine);
  16.                         context->drop();         driver->drop();                timer->drop();                fontengine->drop();

  17.                         // 自定义创建了一个FileService,因为创建多种FileSystem的创建需要依赖于stub
  18.                         // 若只需要一个FileSystem,可以在外界用stub创建好后传入
  19.                         IMxSite* mMagicubeSite = new mx::site::CMxSite("MyMagicCubeSiteDemo");

  20.                         IMagicCubeApp* mMagicubeApp = createMagicCubeApp(mMagicubeSite,mIrrDrawContext);
  21.                         mMagicubeSite->release();
  22.                         mIrrDrawContext->release();
  23.                         mStub->drop();
  24.                         return mMagicubeApp;

  25.                 }
复制代码
问题出在那里?

论坛徽章:
30
摩羯座
日期:2013-12-23 17:28:38牛市纪念徽章
日期:2015-07-13 11:35:582022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:57青铜圣斗士
日期:2015-11-27 17:45:3815-16赛季CBA联赛之天津
日期:2016-02-15 13:44:3615-16赛季CBA联赛之江苏
日期:2018-05-02 16:56:2715-16赛季CBA联赛之辽宁
日期:2018-08-08 13:41:1015-16赛季CBA联赛之深圳
日期:2018-10-02 18:05:0315-16赛季CBA联赛之天津
日期:2019-05-31 15:05:0615-16赛季CBA联赛之北京
日期:2022-06-30 13:34:1115-16赛季CBA联赛之同曦
日期:2022-07-06 19:33:5415-16赛季CBA联赛之吉林
日期:2022-12-28 14:16:22
2 [报告]
发表于 2011-11-02 17:03 |只看该作者
g++ -o OGLES2IntroducingPVRShell OGLES2IntroducingPVRShell.o PVRShellAPI.o PVR    Shell.o PVRShellOS.o orkspace/Magicube/MagicubeSDK/Linux/libmcSDK.a -L~/workspace/Magicube/Irrlicht/Linux/libIrrlicht.a -L~/w     -lEGL -lX11 -lGL


这样不行吗,把a文件放在o文件一起?

论坛徽章:
0
3 [报告]
发表于 2011-11-02 17:19 |只看该作者
g++ -o OGLES2IntroducingPVRShell OGLES2IntroducingPVRShell.o PVRShellAPI.o PVR    Shell.o PVRShellOS ...
siseniao 发表于 2011-11-02 17:03



    为什么不可以?

论坛徽章:
30
摩羯座
日期:2013-12-23 17:28:38牛市纪念徽章
日期:2015-07-13 11:35:582022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:57青铜圣斗士
日期:2015-11-27 17:45:3815-16赛季CBA联赛之天津
日期:2016-02-15 13:44:3615-16赛季CBA联赛之江苏
日期:2018-05-02 16:56:2715-16赛季CBA联赛之辽宁
日期:2018-08-08 13:41:1015-16赛季CBA联赛之深圳
日期:2018-10-02 18:05:0315-16赛季CBA联赛之天津
日期:2019-05-31 15:05:0615-16赛季CBA联赛之北京
日期:2022-06-30 13:34:1115-16赛季CBA联赛之同曦
日期:2022-07-06 19:33:5415-16赛季CBA联赛之吉林
日期:2022-12-28 14:16:22
4 [报告]
发表于 2011-11-02 17:25 |只看该作者
-L是增加lib文件的搜索路径吧,如果连接库文件还得 -l这个参数,据我的实际编译来看,静态库好像即使加了-l也是找不到的,我看别人写的make文件,都是把静态库当做o文件同样处理的,这样就不会有问题了

论坛徽章:
30
摩羯座
日期:2013-12-23 17:28:38牛市纪念徽章
日期:2015-07-13 11:35:582022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:57青铜圣斗士
日期:2015-11-27 17:45:3815-16赛季CBA联赛之天津
日期:2016-02-15 13:44:3615-16赛季CBA联赛之江苏
日期:2018-05-02 16:56:2715-16赛季CBA联赛之辽宁
日期:2018-08-08 13:41:1015-16赛季CBA联赛之深圳
日期:2018-10-02 18:05:0315-16赛季CBA联赛之天津
日期:2019-05-31 15:05:0615-16赛季CBA联赛之北京
日期:2022-06-30 13:34:1115-16赛季CBA联赛之同曦
日期:2022-07-06 19:33:5415-16赛季CBA联赛之吉林
日期:2022-12-28 14:16:22
5 [报告]
发表于 2011-11-02 17:27 |只看该作者
g++ -o OGLES2IntroducingPVRShell OGLES2IntroducingPVRShell.o PVRShellAPI.o PVR    Shell.o PVRShellOS.o ~/workspace/Magicube/Irrlicht/Linux/libIrrlicht.a ~/w    orkspace/Magicube/MagicubeSDK/Linux/libmcSDK.a -lEGL -lX11 -lGL,修正一下

论坛徽章:
5
技术图书徽章
日期:2013-11-07 13:21:58技术图书徽章
日期:2013-12-07 10:34:46技术图书徽章
日期:2014-04-23 08:50:31双鱼座
日期:2014-09-16 09:12:34亥猪
日期:2015-01-23 13:37:49
6 [报告]
发表于 2011-11-02 18:26 |只看该作者
care for the link order
or use -Wl,-while-archive

论坛徽章:
0
7 [报告]
发表于 2011-11-02 21:15 |只看该作者
g++ -o OGLES2IntroducingPVRShell OGLES2IntroducingPVRShell.o PVRShellAPI.o PVR    Shell.o PVRShellOS ...
siseniao 发表于 2011-11-02 17:27



    试了室。有用。谢谢~!但是又出现了另外的 undefined reference to ,也许我的代码有问题。

PS:感觉CU上的人,平均水平要高于其他论坛。

论坛徽章:
30
摩羯座
日期:2013-12-23 17:28:38牛市纪念徽章
日期:2015-07-13 11:35:582022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:57青铜圣斗士
日期:2015-11-27 17:45:3815-16赛季CBA联赛之天津
日期:2016-02-15 13:44:3615-16赛季CBA联赛之江苏
日期:2018-05-02 16:56:2715-16赛季CBA联赛之辽宁
日期:2018-08-08 13:41:1015-16赛季CBA联赛之深圳
日期:2018-10-02 18:05:0315-16赛季CBA联赛之天津
日期:2019-05-31 15:05:0615-16赛季CBA联赛之北京
日期:2022-06-30 13:34:1115-16赛季CBA联赛之同曦
日期:2022-07-06 19:33:5415-16赛季CBA联赛之吉林
日期:2022-12-28 14:16:22
8 [报告]
发表于 2011-11-03 08:34 |只看该作者
调整一下o文件和a文件的顺序试试看,一般连接跑不了这几个问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP