RT,问题可能不是很明确,但我能表达的意思就到这了,感谢
举报
VS如何根据debug和release生成来自动选择相应的lib
举报
通过宏定义。
举个例子:
1.MD5静态库
// MD5.h部分代码
#ifndef _LIB // 仅在库导入时选择链接lib
#ifdef _DEBUG
#pragma comment (lib,"MD5d.lib")
#else
#pragma comment (lib,"MD5.lib")
#endif
#endif // !_LIB
如果只是导入一个库,不考虑兼容导出,把_LIB层去掉即可;
2.再来一个动态库的例子
#ifdef MY_DLL_EXPORTS
#define MY_DLL_API __declspec(dllexport)
#else
#define MY_DLL_API __declspec(dllimport)
#ifdef _WIN64
#ifdef _DEBUG
#pragma comment(lib,"lib/MY_DLLd_x64.lib")
#else
#pragma comment(lib,"lib/MY_DLL_x64.lib")
#endif // _DEBUG
#else
#ifdef _DEBUG
#pragma comment(lib,"lib/MY_DLLd.lib")
#else
#pragma comment(lib,"lib/MY_DLL.lib")
#endif // _DEBUG
#endif // _WIN64
#endif // MY_DLL_EXPORTS
这里包含了x86/x64 Debug/Release的选择。不过,一般来说,装在库目录里的x86/x64的静态库,编译器会根据平台选择不同目录。
3.更进一步,可以选择UNICODE/ANSI,比如EasyX库
#ifdef UNICODE
#pragma comment(lib,"EasyXw.lib")
#else
#pragma comment(lib,"EasyXa.lib")
#endif