MVC++静态库未生成任何导出
MVC++ Static library not generating any exports
编辑:
问题已解决,请参阅下文。
我正在尝试生成一个静态库(而不是导入库(。我想把一些C/C++代码导出到汇编程序项目中。我过去也这样做过,但完全忘记了如何做,似乎什么都不起作用。
对于我的调试代码,我使用以下C/C++代码(export.cpp(:
extern "C"
static
int Add(int a, int b)
{
return a + b;
}
我这样编译(生成export.obj&export.lib(:
cl /c /EHsc export.cpp && lib export.obj
垃圾箱给我以下输出(Dumpbin/EXPORTS export.lib(:
Dump of file export.lib
File Type: LIBRARY
Summary
B0 .debug$S
2F .drectve
我期望以下输出(近似值(:
File Type: LIBRARY
Exports
ordinal name
_Add@8
[snip]
为什么编译器/链接器不导出我的符号
PS。
尝试的其他功能定义有:
extern "C" __declspec(dllexport) ...
__declspec(dllexport) int ..
extern "C" int ...
extern int ..
我几乎可以肯定其中一个应该有效,但我找不到其他有这个问题的人(或者我就是无法搜索(。
/SYMBOLS标志确实显示功能已链接到目标文件:
008 00000000 SECT3 notype () External | _Add
编辑:
问题解决了,我应该少依赖我认为我知道的。。。
静态库只是将一堆.obj文件添加到一个.lib文件中。我的符号(因为它是可见的(一直可以用于我的装配项目。
问题是程序集文件中的函数定义与.lib文件中的符号名称不匹配。
我相信在C和C++之间创建外部函数时,您会看到这种性质的东西。
#ifdef __cplusplus
extern “C” {
#endif
// Function declarations go here, etc.
#ifdef __cplusplus
}
#endif
这允许C链接器"启用"您的函数。希望这就是你想要的。
相关文章:
- RtlCaptureStackBackTrace未捕获任何帧
- CTest 项目目录.未发现任何测试
- 对使用 CMake 生成为 lib .a 的方法的未定义引用
- nng to pynng pub/sub. 客户端未收到任何消息
- QTreeView:如果未键入任何内容,则不要更新索引
- C++ 矢量未显示我插入的任何值
- DLL+导出类+模板成员func=未解析的外部符号.任何修复的机会
- uninit_member:非静态类成员m_wszParams未在此构造函数中初始化,也不在它C++中调用的任何函数中初
- 如果未选中任何项,则禁用某些上下文菜单项
- 后缀Expressrion的插图未显示任何输出
- 在未满足条件时的任何时刻结束一个段循环
- 如果变量未初始化,Visual Studio 2017 不会生成任何警告
- ROS2 COLCON构建未在Windows中显示任何错误消息
- 套接字记录未读取任何消息
- 尝试使用类,但未打印任何内容.不会生成任何错误.我错过了什么吗?
- 类 'MainWindow' 中未声明任何成员函数
- RAW ICMP 套接字:recvfrom() 未接收任何数据
- 任何知道如何解决LNK2019 - 未解析的外部符号,错误
- 如果未使用虚拟函数,则使用基类指针派生类的任何目的
- 错误:"任何类"未在此范围内声明