如何在vc6中添加lib文件

时间:2021-07-27 09:30:42
我在网上查了有三种方法可以导入lib文件:
1.project->add to project->files添加MatrixVCDLL.lib
2.#pragma comment (lib,"MatrixVCDLL.lib") 
3.project->setting->link->library modules加入MatrixVCDLL.lib
这三种方法是不任意一种都可以啊?
第二三种方法要明确写出MatrixVCDLL.lib的路径不?我已经把MatrixVCDLL.lib复制到当前的project下面了。
我三种方法一起都设置了之后,还是提示
error LNK2001: unresolved external symbol "public: __thiscall matrix::~matrix(void)" (??1matrix@@QAE@XZ)
error LNK2001: unresolved external symbol "public: void __thiscall matrix::Plot(void)" (?Plot@matrix@@QAEXXZ)
........
Debug/jia.exe : fatal error LNK1120: 6 unresolved externals
Error executing link.exe.

等等这样的错误

有谁知道是哪里出错了吗?

30 个解决方案

#1


路径是单独指明的,在link-->input选项里的一个addition Library directory,你看看

#2


引用 1 楼 xingzhe2001 的回复:
路径是单独指明的,在link-->input选项里的一个addition Library directory,你看看

addition library path里面填入路径吧?(d:\jia\是我当前project的目录)输入d:\jia或者d:\jia\MatrixVCDLL.lib都不行啊,还是那些错误

#3


推荐2 3

应该是没有加载成功.

#4


引用 1 楼 xingzhe2001 的回复:
路径是单独指明的,在link-->input选项里的一个addition Library directory,你看看


link-->input里面是设定库文件
link-->常规里面才是设定库文件的目录

#5


输入MatrixVCDLL.lib所在的目录

#6


是在link->general->addition Library directory,看错了,注意是个directory

#7


引用 3 楼 akirya 的回复:
推荐2 3

 应该是没有加载成功.

那该怎么加载啊?是这三种方法里面,只用一种方法就可以了嘛?

#8


VC6吧?Matlab导出包吧?
前面要导入相应的头文件:
#include "MatrixVCDLL.h"   
  #pragma comment(lib,"MatrixVCDLL.lib")

#9


在属性-》link->常规->附加库目录中加入你这个lib文件的路径,
用二三方法就能正确把lib文件加载入工程了。
你这个错误就是没有正确加载造成的。

#10


project->setting->link->library modules加入MatrixVCDLL.lib 
project->setting->link->general->addition Library directory 加路径,我这里是vs2005的,vc6也有类似的地方,

#11


项目-》属性-》链接-》常规(路径名)
                  -》输入(文件)

#12


引用 6 楼 xingzhe2001 的回复:
是在link->general->addition Library directory,看错了,注意是个directory

没有addition Library directory那一项啊

#13


引用 11 楼 leewon1988 的回复:
项目-》属性-》链接-》常规(路径名)
                   -》输入(文件)
具体在链接哪里输入啊?

#14


引用 8 楼 thy38 的回复:
VC6吧?Matlab导出包吧?
 前面要导入相应的头文件:
C/C++ code#include"MatrixVCDLL.h"#pragma comment(lib,"MatrixVCDLL.lib")

我是加载一个VC++数值分析类库,Matrix.h对应MatrixVCDLL.lib,
我有
#include "Matrix.h"
#pragma comment(lib,"MatrixVCDLL.lib")
还是有错误的

#15


可能是C++ 把要导出的函数的名称给改变了,然后连接器找不到名称

#16


要不就是你的lib有问题,打开看看真实的lib名称是否是MatrixVCDLL.lib
这个名称是存储在lib文件中真正的名称
有可能是MatrixVCDLLD.lib也不好说,或者别的名字,自己看看吧

#17


引用 8 楼 thy38 的回复:
VC6吧?Matlab导出包吧?
前面要导入相应的头文件:
C/C++ code#include"MatrixVCDLL.h"#pragma comment(lib,"MatrixVCDLL.lib")

顶8楼

#18


[Quote=引用 10 楼 xingzhe2001 的回复:]
project->setting->link->library modules加入MatrixVCDLL.lib
 project->setting->link->general->addition Library directory 加路径,我这里是vs2005的,vc6也有类似的地方,
如何在vc6中添加lib文件

#19


珍爱生命 远离vc6

#20


#pragma comment(lib,"这里是你lib文件的路径,绝对路径,相对路径都行,童鞋~")

#21


引用 19 楼 kim_jinye 的回复:
珍爱生命 远离vc6

额···有理···!

#22


引用 20 楼 only_lonely 的回复:
#pragma comment(lib,"这里是你lib文件的路径,绝对路径,相对路径都行,童鞋~")
#pragma    comment(lib,"D:\jia\MatrixVCDLL.lib") 之后会提示

D:\jia\jia.cpp(6) : warning C4129: 'j' : unrecognized character escape sequence
D:\jia\jia.cpp(6) : warning C4129: 'M' : unrecognized character escape sequence
Linking...
LINK : fatal error LNK1104: cannot open file "D:jiaMatrixVCDLL.lib"
Error executing link.exe.
好像不识别这个路径啊

#23


#pragma comment(lib, "MatrixVCDLL.lib")是显式加载库的方法,这个库必须要在.exe文件的所在目录下,或者在系统环境变量指定的目录下,或者在Windows系统system32下,或者在project->setting->link->general->addition Library directory所指定的第三方库的路径下。

可以指定绝对路径,但您的的路径写错了,必须写成转义字符
#pragma comment(lib, "D:\\jia\\MatrixVCDLL.lib")。

三种方法都可以,建议显式加载,很清楚。

#24


vc6  的 project/setting里的 link标签项就有添加.lib文件 

#25


#include"MatrixVCDLL.h"
#pragma comment(lib,"MatrixVCDLL.lib") 

必须加头文件

#26


引用 23 楼 kevin_perkins 的回复:
#pragma comment(lib, "MatrixVCDLL.lib")是显式加载库的方法,这个库必须要在.exe文件的所在目录下,或者在系统环境变量指定的目录下,或者在Windows系统system32下

系统环境变量指定的目录怎么看呢?VC运行和windows系统system32有什么联系呢?我看那个类库的说明,是说要我把MatrixVCDLL.dll放到windows目录下或者windows\system下,我的VC是装在D盘的,会不有影响呢?

#27


引用 22 楼 h137jj 的回复:
引用 20 楼 only_lonely 的回复:
#pragma comment(lib,"这里是你lib文件的路径,绝对路径,相对路径都行,童鞋~")
#pragma    comment(lib,"D:\jia\MatrixVCDLL.lib") 之后会提示

D:\jia\jia.cpp(6) : warning C4129: 'j' : unrecognized character escape sequence
D:\jia\jia.cpp(6) : warning C4129: 'M' : unrecognized character escape sequence
Linking...
LINK : fatal error LNK1104: cannot open file "D:jiaMatrixVCDLL.lib"
Error executing link.exe.
好像不识别这个路径啊


首先。。搞清楚。。是不是这个lib

#28


以前用过,好像23都行,也没有出问题。学习中。

#29


学习 !

#30


引用 22 楼 h137jj 的回复:
引用 20 楼 only_lonely 的回复: 
#pragma comment(lib,"这里是你lib文件的路径,绝对路径,相对路径都行,童鞋~") 
#pragma    comment(lib,"D:\jia\MatrixVCDLL.lib") 之后会提示 

D:\jia\jia.cpp(6) : warning C4129: 'j' : unrecognized character escape sequence 
D:\jia\jia.cpp(6) : warning C4129: 'M' : unrecognized character escape sequence 
Linking... 
LINK : fatal error LNK1104: cannot open file "D:jiaMatrixVCDLL.lib" 
Error executing link.exe. 
好像不识别这个路径啊 
应该把“#pragma    comment(lib,"D:\jia\MatrixVCDLL.lib") ”
改成“#pragma    comment(lib,"D:\\jia\\MatrixVCDLL.lib") ”就好了

#1


路径是单独指明的,在link-->input选项里的一个addition Library directory,你看看

#2


引用 1 楼 xingzhe2001 的回复:
路径是单独指明的,在link-->input选项里的一个addition Library directory,你看看

addition library path里面填入路径吧?(d:\jia\是我当前project的目录)输入d:\jia或者d:\jia\MatrixVCDLL.lib都不行啊,还是那些错误

#3


推荐2 3

应该是没有加载成功.

#4


引用 1 楼 xingzhe2001 的回复:
路径是单独指明的,在link-->input选项里的一个addition Library directory,你看看


link-->input里面是设定库文件
link-->常规里面才是设定库文件的目录

#5


输入MatrixVCDLL.lib所在的目录

#6


是在link->general->addition Library directory,看错了,注意是个directory

#7


引用 3 楼 akirya 的回复:
推荐2 3

 应该是没有加载成功.

那该怎么加载啊?是这三种方法里面,只用一种方法就可以了嘛?

#8


VC6吧?Matlab导出包吧?
前面要导入相应的头文件:
#include "MatrixVCDLL.h"   
  #pragma comment(lib,"MatrixVCDLL.lib")

#9


在属性-》link->常规->附加库目录中加入你这个lib文件的路径,
用二三方法就能正确把lib文件加载入工程了。
你这个错误就是没有正确加载造成的。

#10


project->setting->link->library modules加入MatrixVCDLL.lib 
project->setting->link->general->addition Library directory 加路径,我这里是vs2005的,vc6也有类似的地方,

#11


项目-》属性-》链接-》常规(路径名)
                  -》输入(文件)

#12


引用 6 楼 xingzhe2001 的回复:
是在link->general->addition Library directory,看错了,注意是个directory

没有addition Library directory那一项啊

#13


引用 11 楼 leewon1988 的回复:
项目-》属性-》链接-》常规(路径名)
                   -》输入(文件)
具体在链接哪里输入啊?

#14


引用 8 楼 thy38 的回复:
VC6吧?Matlab导出包吧?
 前面要导入相应的头文件:
C/C++ code#include"MatrixVCDLL.h"#pragma comment(lib,"MatrixVCDLL.lib")

我是加载一个VC++数值分析类库,Matrix.h对应MatrixVCDLL.lib,
我有
#include "Matrix.h"
#pragma comment(lib,"MatrixVCDLL.lib")
还是有错误的

#15


可能是C++ 把要导出的函数的名称给改变了,然后连接器找不到名称

#16


要不就是你的lib有问题,打开看看真实的lib名称是否是MatrixVCDLL.lib
这个名称是存储在lib文件中真正的名称
有可能是MatrixVCDLLD.lib也不好说,或者别的名字,自己看看吧

#17


引用 8 楼 thy38 的回复:
VC6吧?Matlab导出包吧?
前面要导入相应的头文件:
C/C++ code#include"MatrixVCDLL.h"#pragma comment(lib,"MatrixVCDLL.lib")

顶8楼

#18


[Quote=引用 10 楼 xingzhe2001 的回复:]
project->setting->link->library modules加入MatrixVCDLL.lib
 project->setting->link->general->addition Library directory 加路径,我这里是vs2005的,vc6也有类似的地方,
如何在vc6中添加lib文件

#19


珍爱生命 远离vc6

#20


#pragma comment(lib,"这里是你lib文件的路径,绝对路径,相对路径都行,童鞋~")

#21


引用 19 楼 kim_jinye 的回复:
珍爱生命 远离vc6

额···有理···!

#22


引用 20 楼 only_lonely 的回复:
#pragma comment(lib,"这里是你lib文件的路径,绝对路径,相对路径都行,童鞋~")
#pragma    comment(lib,"D:\jia\MatrixVCDLL.lib") 之后会提示

D:\jia\jia.cpp(6) : warning C4129: 'j' : unrecognized character escape sequence
D:\jia\jia.cpp(6) : warning C4129: 'M' : unrecognized character escape sequence
Linking...
LINK : fatal error LNK1104: cannot open file "D:jiaMatrixVCDLL.lib"
Error executing link.exe.
好像不识别这个路径啊

#23


#pragma comment(lib, "MatrixVCDLL.lib")是显式加载库的方法,这个库必须要在.exe文件的所在目录下,或者在系统环境变量指定的目录下,或者在Windows系统system32下,或者在project->setting->link->general->addition Library directory所指定的第三方库的路径下。

可以指定绝对路径,但您的的路径写错了,必须写成转义字符
#pragma comment(lib, "D:\\jia\\MatrixVCDLL.lib")。

三种方法都可以,建议显式加载,很清楚。

#24


vc6  的 project/setting里的 link标签项就有添加.lib文件 

#25


#include"MatrixVCDLL.h"
#pragma comment(lib,"MatrixVCDLL.lib") 

必须加头文件

#26


引用 23 楼 kevin_perkins 的回复:
#pragma comment(lib, "MatrixVCDLL.lib")是显式加载库的方法,这个库必须要在.exe文件的所在目录下,或者在系统环境变量指定的目录下,或者在Windows系统system32下

系统环境变量指定的目录怎么看呢?VC运行和windows系统system32有什么联系呢?我看那个类库的说明,是说要我把MatrixVCDLL.dll放到windows目录下或者windows\system下,我的VC是装在D盘的,会不有影响呢?

#27


引用 22 楼 h137jj 的回复:
引用 20 楼 only_lonely 的回复:
#pragma comment(lib,"这里是你lib文件的路径,绝对路径,相对路径都行,童鞋~")
#pragma    comment(lib,"D:\jia\MatrixVCDLL.lib") 之后会提示

D:\jia\jia.cpp(6) : warning C4129: 'j' : unrecognized character escape sequence
D:\jia\jia.cpp(6) : warning C4129: 'M' : unrecognized character escape sequence
Linking...
LINK : fatal error LNK1104: cannot open file "D:jiaMatrixVCDLL.lib"
Error executing link.exe.
好像不识别这个路径啊


首先。。搞清楚。。是不是这个lib

#28


以前用过,好像23都行,也没有出问题。学习中。

#29


学习 !

#30


引用 22 楼 h137jj 的回复:
引用 20 楼 only_lonely 的回复: 
#pragma comment(lib,"这里是你lib文件的路径,绝对路径,相对路径都行,童鞋~") 
#pragma    comment(lib,"D:\jia\MatrixVCDLL.lib") 之后会提示 

D:\jia\jia.cpp(6) : warning C4129: 'j' : unrecognized character escape sequence 
D:\jia\jia.cpp(6) : warning C4129: 'M' : unrecognized character escape sequence 
Linking... 
LINK : fatal error LNK1104: cannot open file "D:jiaMatrixVCDLL.lib" 
Error executing link.exe. 
好像不识别这个路径啊 
应该把“#pragma    comment(lib,"D:\jia\MatrixVCDLL.lib") ”
改成“#pragma    comment(lib,"D:\\jia\\MatrixVCDLL.lib") ”就好了