关于OBJ/LIB格式,我以前有个总结

跨编译器库文件转换
本文详细介绍了VC、GCC及BCB等编译器之间的obj、lib和typelib文件格式转换方法,包括使用coff2omf工具进行OMF格式转换的细节,以及VC如何处理由不同编译器生成的库文件。

1.VC,GCC obj,lib格式为coff 可相互通用
2.vc,gcc的obj,lib可通过coff2omfn转成OMF格式,但VC在编译时要加/Zl选项
3.VC,GCC的typelib可通过coff2omf转成OMF格式
4.由于BCB的OMF是非标的,所以VC的link无法识别,但它可识别标准的OMF格式
5.editbin可将标准的OMF转为COFF(只能转obj,不能转lib)
6.VC,GCC,BCB的二进制查看分别为dumpbin,objdump,tdump,tdump的-C可查看COFF格式
基于上面的第4/5点,VC是无法识别BCB的LIB的
如果你的LIB是DLL生成的,VC是可以将DLL转成LIB的,具体Google下

转载于:https://www.cnblogs.com/MaxWoods/p/4096325.html

把子类NstStatusMonitor的cpp和h,单独拿出来用g++ -o NstStatusMonitor -I/opt/CIAP/include -L/opt/CIAP/lib -liap_NOS_Pool_ main.cpp NstStatusMonitor.cpp NstStatusMonitor.h可以编译成功,但是,直接在项目make报错 g++ -ggdb -Wall -DIAP_DB_MYSQL -DIAP_DB_SQLSERVER -DCIFXDN -fPIC -fpermissive -w -DIAP_RTOS -DVERSION_INFO=\"1.1.0\" ./src/standardTM.cpp ./obj/Aligner/NstAligner.o ./obj/Aligner/NstFuncAligner.o ./obj/Aligner/NstPhyAligner.o ./obj/Base/Monitor/NstGuardAction.o ./obj/Base/Monitor/NstCheckItem.o ./obj/Base/Monitor/NstAppDataLogMonitor.o ./obj/Base/Monitor/NstSInterlock.o ./obj/Base/Monitor/NstStatusMonitor.o ./obj/Base/Monitor/NstVInterlock.o ./obj/Base/Alarm/NstClearAlarmIncident.o ./obj/Base/Alarm/NstAlarmParser.o ./obj/Base/Alarm/NstAlarmObserver.o ./obj/Base/Module/NstAppService.o ./obj/Base/Module/NstFunctionalModel.o ./obj/Base/Module/NstMaintainModel.o ./obj/Base/Module/NstOperationalProcess.o ./obj/Base/Module/NstStation.o ./obj/Base/Module/NstChamber.o ./obj/Base/Module/NstEtchTMPlatform.o ./obj/Base/Module/NstBuffer.o ./obj/Base/Module/NstRorChecker.o ./obj/Base/Module/NstOperationalModel.o ./obj/Base/Module/NstModule.o ./obj/Base/Module/NstControlObjectEX.o ./obj/Base/Module/NstSimulatePM.o ./obj/Base/Util/NstNumberArrayTool.o ./obj/Base/Util/NstVirtualButton.o ./obj/Base/Util/NstVersion.o ./obj/Base/Util/NstAlarmTool.o ./obj/Base/Util/NstAliasExport.o ./obj/Base/Util/NstXmlGetter.o ./obj/Base/Util/NstTimeDiff.o ./obj/Base/Util/NstHeartBeatMachine.o ./obj/Base/Util/NstConditionUtil.o ./obj/Base/Util/NstUtil.o ./obj/Base/Util/NstStrTool.o ./obj/Base/Util/NstMapTool.o ./obj/Base/Util/NstPressureCondition.o ./obj/Base/Util/NstCTCExport.o ./obj/Base/Util/NstTimeSynchronizer.o ./obj/Base/Util/NstPressureValue.o ./obj/Base/Util/NstAutoLoad.o ./obj/Base/Util/NstTimeConsumeManager.o ./obj/Base/Util/NstCounterTimer.o ./obj/Base/Util/NstMathTool.o ./obj/Base/Util/NstUTime.o ./obj/Base/Util/NstAsyncCommConfig.o ./obj/Base/Util/NstEventLogger.o ./obj/Base/Util/NstHex.o ./obj/Base/Util/NstVirtualResetButton.o ./obj/Base/Exception/NstConfigException.o ./obj/Base/Exception/NstTMCException.o ./obj/Base/Process/NstAppRcpBody.o ./obj/Base/Process/NstProcessLogger.o ./obj/Base/Process/NstProcessChamber.o ./obj/Base/Process/NstProcessMonitor.o ./obj/Base/Process/NstProcessRecovery.o ./obj/Base/Process/NstTransRecovery.o ./obj/Base/Process/NstAppRcpStep.o ./obj/Base/Process/NstTransferChamber.o ./obj/Counter/NstGasCounter.o ./obj/Counter/NstLiterTorrCounter.o ./obj/Counter/NstRorCounter.o ./obj/Counter/NstLifeRatioCalculator.o ./obj/Counter/NstMaterialCounter.o ./obj/Counter/NstDeviceStatusCounter.o ./obj/EtchAdaptor/LoadLock/NstEtchMaintHeaterLoadLock.o ./obj/EtchAdaptor/LoadLock/NstEtchOprHeaterLoadLock.o ./obj/EtchAdaptor/LoadLock/NstEtchMaintLoadLock.o ./obj/EtchAdaptor/LoadLock/NstEtchMaintLoadLockVacSys.o ./obj/EtchAdaptor/LoadLock/NstEtchMaintHeaterLoadLockVacSys.o ./obj/EtchAdaptor/LoadLock/NstEtchFuncLoadLock.o ./obj/EtchAdaptor/LoadLock/NstEtchOprLoadLock.o ./obj/EtchAdaptor/LoadLock/NstEtchFuncHeaterLoadLock.o ./obj/EtchAdaptor/Vacuum/NstEtchVacuumSystem.o ./obj/EtchAdaptor/LoadLockProcess/NstEtchMotorPin.o ./obj/EtchAdaptor/LoadLockProcess/NstEtchLoadLock.o ./obj/EtchAdaptor/LoadPort/NstEtchMaintLoadPort.o ./obj/EtchAdaptor/LoadPort/NstEtchOprLoadPort.o ./obj/EtchAdaptor/LoadPort/NstEtchLoadPortDoor.o ./obj/EtchAdaptor/Chamber/NstEtchMaintVacSys.o ./obj/EtchAdaptor/Chamber/NstEtchOperationalBuffer.o ./obj/EtchAdaptor/Aligner/NstEtchMaintAligner.o ./obj/EtchAdaptor/Aligner/NstEtchOprAligner.o ./obj/EtchAdaptor/Robot/NstEtchOprVacRobot.o ./obj/EtchAdaptor/Robot/NstEtchOprRobot.o ./obj/EtchAdaptor/Robot/NstEtchMaintRobot.o ./obj/EtchAdaptor/Heater/NstLLHeaterProcessResource.o ./obj/EtchAdaptor/Heater/NstHeaterProcessResource.o ./obj/IOBridge/Ethercat/NstEtherCatCIFX.o ./obj/IOBridge/Ethercat/NstEtherCatPLC.o ./obj/IOBridge/Ethercat/NstEtherCatBaseDevice.o ./obj/IOBridge/Ethercat/NstEtherCat.o ./obj/IOBridge/PLC_Reserve/NstMotorPlc.o ./obj/IOBridge/PLC_Reserve/NstBeckhoffPlc.o ./obj/IOBridge/Robot/NstEthernetRobot.o ./obj/IOBridge/Base/NstSerialDevice.o ./obj/IOBridge/Base/NstEthernetSocket.o ./obj/IOBridge/EFEM/NstOcr.o ./obj/IOBridge/EFEM/NstEthernetLoadPort.o ./obj/IOBridge/EFEM/NstEthernetEFEM.o ./obj/IOBridge/Chiller/NstChiller.o ./obj/IOBridge/Chiller/NstModbusChiller.o ./obj/IOBridge/Chiller/NstChillerHRZ.o ./obj/IOBridge/Chiller/NstChillerHEC.o ./obj/IOBridge/TempCtl/NstModBusRTUTemplate.o ./obj/IOBridge/TempCtl/NstE5CTempCtl.o ./obj/IOBridge/Pump/NstCryoPump.o ./obj/LightTower/NstPhyLightTower.o ./obj/LightTower/NstLightTower.o ./obj/LightTower/NstPhyMALightTower.o ./obj/LoadLock/NstFuncLifter.o ./obj/LoadLock/NstPhyLifter.o ./obj/LoadLock/NstPhyPin.o ./obj/LoadLock/NstLoadLock.o ./obj/LoadLock/NstFuncHeater.o ./obj/LoadLock/NstPhyHeater.o ./obj/LoadLock/NstFuncChuck.o ./obj/LoadPort/NstOprLoadPort.o ./obj/LoadPort/NstPhyRorzeLoadPort.o ./obj/LoadPort/NstFuncLoadPort.o ./obj/LoadPort/NstPhyLoadPort.o ./obj/Robot/NstOprRobot.o ./obj/Robot/NstFuncRobot.o ./obj/Robot/NstTransOffsetAnalysis.o ./obj/Robot/NstPhyRobot.o ./obj/TempCtl/NstPhyTempControl.o ./obj/TempCtl/NstPhyChiller.o ./obj/TempCtl/NstFuncTempControl.o ./obj/Vacuum/NstFuncCryoPumpShi.o ./obj/Vacuum/NstPhyButterflyValve.o ./obj/Vacuum/NstVacuumSystem.o ./obj/Vacuum/NstPhyCryoPump.o ./obj/Vacuum/NstPhyFIBValve.o ./obj/Vacuum/NstPhyPC.o ./obj/Vacuum/NstPhyTurboPumpPF.o ./obj/Vacuum/NstPhyGauge.o ./obj/Vacuum/NstVacuumProcedure.o ./obj/Vacuum/NstFuncCryoPumpShiGroup.o ./obj/Vacuum/NstPhyMFC.o ./obj/Vacuum/NstPhyButterflyValveEC.o ./obj/Vacuum/NstFuncTurboPump.o ./obj/Vacuum/NstVacuumService.o ./obj/Vacuum/NstPhyValve.o ./obj/Vacuum/NstPhyPendulumValve.o ./obj/Vacuum/NstPhySlotValve.o ./obj/Vacuum/NstPhyDryPump.o ./obj/Vacuum/NstPhyPump.o ./obj/Vacuum/NstFuncCryoPump.o ./obj/Vacuum/NstPhyTurboPump.o ./obj/Vacuum/NstFuncRefill.o ./obj/Vacuum/NstPhyGateValve.o -I./src/Aligner -I./src/Base -I./src/Base/Enum -I./src/Base/Monitor -I./src/Base/Alarm -I./src/Base/Module -I./src/Base/Util -I./src/Base/Exception -I./src/Base/Process -I./src/Counter -I./src/EtchAdaptor -I./src/EtchAdaptor/LoadLock -I./src/EtchAdaptor/Vacuum -I./src/EtchAdaptor/LoadLockProcess -I./src/EtchAdaptor/LoadPort -I./src/EtchAdaptor/Chamber -I./src/EtchAdaptor/Aligner -I./src/EtchAdaptor/Robot -I./src/EtchAdaptor/Heater -I./src/IOBridge -I./src/IOBridge/Ethercat -I./src/IOBridge/PLC_Reserve -I./src/IOBridge/Robot -I./src/IOBridge/Base -I./src/IOBridge/EFEM -I./src/IOBridge/Chiller -I./src/IOBridge/TempCtl -I./src/IOBridge/Pump -I./src/LightTower -I./src/LoadLock -I./src/LoadPort -I./src/Robot -I./src/TempCtl -I./src/Vacuum/ -I/opt/CIAP/include -I/opt/Ice-3.1.4/include -I/usr/include -I/usr -I/opt/dnscan/include -I/usr/local/include/cifx -L/opt/CIAP/lib -liap_NOS_Pool_ -L/opt/Ice-3.1.4/lib -lIce -lIceUtil -lIceStorm -lmysqlpp -L/opt/dnscan/lib -ldnscan -lcurl -L/usr/local/lib -lcifx -lpciaccess -L/usr/lib -lxerces-c -o ./bin/debug/standardTM /usr/bin/ld: ./obj/Base/Monitor/NstStatusMonitor.o:(.data.rel.ro._ZTVN3Nst16NstStatusMonitorE[_ZTVN3Nst16NstStatusMonitorE]+0xe8): undefined reference to `non-virtual thunk to IAP::CONTROL::ControlMonitor::beginPostAlarm()' /usr/bin/ld: ./obj/Base/Monitor/NstStatusMonitor.o:(.data.rel.ro._ZTVN3Nst16NstStatusMonitorE[_ZTVN3Nst16NstStatusMonitorE]+0xf0): undefined reference to `non-virtual thunk to IAP::CONTROL::ControlMonitor::endPostAlarm()' /usr/bin/ld: ./obj/Base/Monitor/NstStatusMonitor.o:(.data.rel.ro._ZTVN3Nst16NstStatusMonitorE[_ZTVN3Nst16NstStatusMonitorE]+0x118): undefined reference to `non-virtual thunk to IAP::CONTROL::ControlMonitor::updateFromIncident(IAP::CONDITION::Incident*)' collect2: error: ld returned 1 exit status make: *** [Makefile:113: standardTM] Error 1
最新发布
08-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值