GPU(CUDA)学习日记(二)--------VS2010不同工程之间调用DLL或者LIB
2012-08-01 16:48
543 查看
最近的算法利用不同工程生成动态库或是静态库,然后在主工程中调用,我应用的开发工具是VS2010,可以说,C++在中的不同工程之间的链接是很麻烦的!~~~
本人首先生成的静态库LIB(因为比较简单,⊙﹏⊙b汗~~~)
具体方法如下:
1、工程属性中,将生成改为“.lib”,然后将“C/C++”中的“代码生成”项改为“多线程调试”(为了解决msvcprtd.lib重定义的问题)。
2、在主工程中,主函数中加入.h头文件。
3、在主工程中添加“引用”,在“链接器”中的“输入”项中添加“XX.lib”,并且要在“VC++目录”,“库目录”中加入lib文件的地址。(这样的话,无法解析的外部符号应该就已经解决了~~~)
由于自己的CUDA开发环境的问题,.cu文件总是出现诸如少括号,少分号,而实际看程序时是完全正确的。所以,本人开始怀疑是不是静态库的分工程中没有链接一项,所以找不到CUDA的库文件或者是编译器(开始怀疑一切~)。接下来开始探索加载动态库:
具体方法如下(转自他人~):
1。隐式加载:即在程序中包含lib文件和.h文件,隐式链接有时称为静态加载或加载时动态链接。例如:
#include "somedll.h"
#pragma comment( lib, "somedll.lib")
然后就可以直接调用此dll中的函数,注意运行时仍然需要somedll.dll。
2。显示加载:使用loadlibrary,GetProcAddress,FreeLibrary,不需要.h文件和.lib文件,但是要知道函数的原型。显式链接有时称为动态加载或运行时动态链接。
不同工程之间加载动态库的问题已经解决,具体步骤见本人的“GPU学习日记(二)续二”中的说明。
好吧,我承认自己的博客写的有点水~但是希望可以微微的帮助有同样困扰的人一下哈~~
本人首先生成的静态库LIB(因为比较简单,⊙﹏⊙b汗~~~)
具体方法如下:
1、工程属性中,将生成改为“.lib”,然后将“C/C++”中的“代码生成”项改为“多线程调试”(为了解决msvcprtd.lib重定义的问题)。
2、在主工程中,主函数中加入.h头文件。
3、在主工程中添加“引用”,在“链接器”中的“输入”项中添加“XX.lib”,并且要在“VC++目录”,“库目录”中加入lib文件的地址。(这样的话,无法解析的外部符号应该就已经解决了~~~)
由于自己的CUDA开发环境的问题,.cu文件总是出现诸如少括号,少分号,而实际看程序时是完全正确的。所以,本人开始怀疑是不是静态库的分工程中没有链接一项,所以找不到CUDA的库文件或者是编译器(开始怀疑一切~)。接下来开始探索加载动态库:
具体方法如下(转自他人~):
1。隐式加载:即在程序中包含lib文件和.h文件,隐式链接有时称为静态加载或加载时动态链接。例如:
#include "somedll.h"
#pragma comment( lib, "somedll.lib")
然后就可以直接调用此dll中的函数,注意运行时仍然需要somedll.dll。
2。显示加载:使用loadlibrary,GetProcAddress,FreeLibrary,不需要.h文件和.lib文件,但是要知道函数的原型。显式链接有时称为动态加载或运行时动态链接。
不同工程之间加载动态库的问题已经解决,具体步骤见本人的“GPU学习日记(二)续二”中的说明。
好吧,我承认自己的博客写的有点水~但是希望可以微微的帮助有同样困扰的人一下哈~~
相关文章推荐
- GPU(CUDA)学习日记(二)--------VS2010不同工程之间调用DLL或者LIB
- GPU(CUDA)学习日记(二)续二------ VS2010 不同工程之间调用DLL
- GPU(CUDA)学习日记(二)续------ VS2010 不同工程之间调用DLL
- GPU(CUDA)学习日记(二)续二------ VS2010 不同工程之间调用DLL
- GPU(CUDA)学习日记(二)续------ VS2010 不同工程之间调用DLL
- 使用DLL进行不同语言之间的调用
- Cocos2d-x win7 + vs2010 配置(如何创建cocos2d-x工程,解决各种头文件包含错误、lib库引用错误 及dll链接错误)
- 使用DLL进行不同语言之间的调用
- vs2010下C++调用lib或dll文件
- 《同一个类中不同方法之间的调用相关问题(省略的类名或者this)》
- 如何优雅的查看VS2010的工程是DLL还是LIB还是EXE的
- vs2010编译某个工程提示缺少lib或者头文件 vs2010的配置中的生成事件
- Cocos2d-x win7 + vs2010 配置(如何创建cocos2d-x工程,解决各种头文件包含错误、lib库引用错误 及dll链接错误)
- vs2010下C++调用lib或dll文件
- Qt调用MFC的dll或者lib出错
- 使用DLL进行不同语言之间的调用
- 不同语言之间的DLL调用
- VS2010下,C++工程调用CUDA工程
- vs2010 生成和调用dll和lib
- GPU(CUDA)学习日记(四)----------VS2010 + win7 32位 + CUDA 4.2 环境配置以及一些小问题的解决