neu*_*rte 17 linker visual-c++ exp
我有一个由3个项目组成的解决方案.一个是静态库,两个是基于控制台的.exe文件,它们依赖于此库并链接到该库.他们的设置似乎相同.我建立了其中一个:
1> ------ Build build:项目:masksample,配置:Debug Win32 ------
1>编译...
1> stdafx.cpp
1>编译...
1> masksample.cpp
1>编译显示资源...
1>链接...
1> LINK:C:\ Users\DarekSz\Praca\cci\Debug\masksample.exe未找到或未由最后一个增量链接构建; 执行完整链接
1>嵌入清单...
1>掩码样本 - 0错误,0警告
==========构建:1成功,0失败,1最新, 0跳过==========
然后我继续建造另一个:
1> ------ Build build:项目:calibsample,配置:Debug Win32 ------
1>编译...
1> stdafx.cpp
1>编译...
1> calibsample.cpp
1>编译显示资源...
1>链接...
1>链接:C:\ Users\DarekSz\Praca\cci\Debug\calibsample.exe未找到或未由最后一个增量链接构建; 执行完整链接
1>创建库C:\ Users\DarekSz\Praca\cci\Debug\calibsample.lib和对象C:\ Users\DarekSz\Praca\cci\Debug\calibsample.exp
1>嵌入清单...
1> calibsample - 0错误,0警告
==========构建:1成功,0失败,1最新,0跳过==========
为什么链接器这次会创建.lib和.exp文件?是否有一些选项可以打开和关闭我在不知情的情况下激活它?
Fra*_*sco 19
这有点晚了,但也许其他人可以找到有用的提示.
顺便说一句我不是c ++大师......
在我的解决方案中,我有3个项目.一个是dll项目,其他是两个引用dll项目的Win32应用程序项目.
通常,在构建了dll之后,还会为NON dll项目生成其他一些文件(.exp,.lib).当您将dll项目的.h文件包含到app项目中时,会出现这种情况,该项目包含一个标有__declspec(dllexport)的类.
为了避免链接器认为您试图将某些.h文件包含到"export"中,请使用条件表达式来定义_declspec宏.
例:
#if defined(_DO_NOT_EXPORT)
#define DllExport
#else
#define DllExport __declspec(dllexport)
#endif
Run Code Online (Sandbox Code Playgroud)
好的,假设你的dll项目中有一个MyClass.h.
在您的.h文件中,您现在可以拥有:
class DllExport MyClass {
...
}
Run Code Online (Sandbox Code Playgroud)
如果要将此.h文件包含到NON dll项目中,只需定义_DO_NOT_EXPORT条件即可
#define _DO_NOT_EXPORT
#include "MyClass.h"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15789 次 |
| 最近记录: |