您的位置:首页 > 其它

OCC配置(windows)问题解决以及遇到的问题

2011-04-20 09:42 615 查看
预编译处理:

WINDOWS

CSFDB

_DEBUG

WNT

WIN32

NO_COMMONSAMPLE_EXPORTS

NO_IESAMPLE_EXPORTS

QT_DLL

QT_GUI_LIB

QT_CORE_LIB

QT_THREAD_SUPPORT


附加依赖项:

qtmaind.lib

TKernel.lib

PTKernel.lib

TKMath.lib

TKService.lib

TKV3d.lib

TKV2d.lib

TKBRep.lib

TKIGES.lib

TKSTL.lib

TKVRML.lib

TKSTEP.lib

TKSTEPAttr.lib

TKSTEP209.lib

TKSTEPBase.lib

TKShapeSchema.lib

TKGeomBase.lib

TKGeomAlgo.lib

TKG3d.lib

TKG2d.lib

TKXSBase.lib

TKPShape.lib

TKShHealing.lib

TKHLR.lib

TKTopAlgo.lib

TKMesh.lib

TKPrim.lib

TKCDF.lib

TKBool.lib

TKBO.lib

TKFillet.lib

TKOffset.lib

QtCore4.lib

QtGui4.lib

QtGuid4.lib

QtCored4.lib


 

1. LINK : fatal error LNK1104: cannot open file "TKBRep.lib"

找到这个文件(找不到就不要编译了)

把这个文件拷贝到VC的库文件夹下面(C:/Program Files/Microsoft Visual Studio/VC98/LIB),或者在VC的菜单选择Tools,再选择“directories”,改"show directories for" 为“library files”

在下面添加你的库文件所在位置。

 
 
2. LINK : fatal error LNK1181: 无法打开输入文件“mfc42d.lib”
执行 link.exe 时出错.
Calculator.exe - 1 error(s), 0 warning(s) 错误主要出现在网络流传的VC++6.0版本中(ProductID:50021-111-1111111-1745)当调试链接MFC向导程序的时候,出现此错误。发生这一错误的原因主要是设置问题,但仅通过修改设置缺无法解决。并且通过重新安装也无法解决。
正确的解决方法是将安装文件中的
C:/VC++.6.0.with.SP6/VC6CN/VC98/MFC/LIB 或 C:/VC++.6.0.with.SP6/VC6EN/VC98/MFC/LIB
目录下的所有文件复制,粘贴到 C:/Program Files/Microsoft Visual Studio/VC98/MFC/Lib
※和 C:/Program Files/Microsoft Visual Studio/VC98/Lib 即可。
产生此错误的主要原因是VC编译程序在Microsoft Visual Studio/VC98/Lib目录下链接而非Microsoft Visual Studio/VC98/MFC/Lib目录,故即使Microsoft Visual Studio/VC98/MFC/Lib下有mfc42d.lib,也无法链接
 
 

vs解决方案release版本调成debug

如果给你一个vs的解决方案,默认的是release版的,让你弄出一个debug版本出来方便调试,你会发现,一个大的工程,绝对不会是讲release改为debug那么简单。

首先,改为debug后,要保证一些基本的库跟release版本是一致的,这样才能够保证编译时能够找到库文件,dll或者lib,有时候路径设置的不对,甚至连h或者cpp文件也找不到。

然后,是字符集和MFC使用的设置,一般都是多字符集,MFC跟release版本保持一致。当然有时候编译不通过的时候可以都试一下。

另外还有几个特别容易出错的地方,代码生成那里的基本运行时检查和运行时库,设置的不对也会导致大量的出错信息。

注意一下文件的输入输出目录,各个文件之间的调用关系。

下面说一下我今天遇到的错误还有解决方法吧。

error LNK2005: _calloc 已经在 libcmtd.lib(dbgheap.obj) 中定义 LIBCMT.lib
fatal error LNK1169: 找到一个或多个多重定义的符号
这种错误要在链接器—输入—忽略特定库中输入LIBCMT.lib。

error LNK2005: _DllMain@12 已经在 CyberGina.obj 中定义 mfcs80d.lib
fatal error LNK1169: 找到一个或多个多重定义的符号
我在预处理器—预处理定义—删除USEDLL解决了问题

error LNK2019: 无法解析的外部符号 _CIP_STREAM_OP,该符号在函数 “public: long………………中被引用
这种错误一般是库文件路径不对
链接器—输入—附加依赖库 保持跟release一致

error C2491: XXX: 不允许 dllimport 函数的定义
c/c++ 预处理器 预处理定义 添加APICTRL_EXPORTS,网上多半是说加入DLLEXPORT,我试过了,对我来说不能解决。呵呵。

最后,如果提示找不到什么lib,dll一定要仔细检查设置的附加库啊,包含目录啊,依赖项,要保证路径正确,并且文件存在。

 

./debug/moc_MDIWindow.cpp(54) : error C2491: “MDIWindow::staticMetaObject”: 不允许dllimport 静态数据成员的定义

解决的办法在Project->Property->C/C++->预处理器加上NO_IESAMPLE_EXPORTS,NO_COMMONSAMPLE_EXPORTS(这两个宏都在文件中有定义,而且涉及到#define COMMONSAMPLE_EXPORT __declspec( dllexport ),#define IESAMPLE_EXPORT __declspec( dllexport ))

 

_Z10qAllocMoreii程序无法定位于QtCore4d.dll
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐