调用静态库中定义的全局函数会导致链接器错误

时间:2018-02-27 14:00:27

标签: c++ static global

我创建了一个简单的静态库项目和一个Win32控制台项目来调用函数。

// static lib code
// Test.h
void abf();

// Test.cpp
void abf()
{
}

// Caller Project code
// MyTest.cpp
#include "Test.h
int main()
{
    abf();
    return 0;
}

静态库编译没有错误。但调用者项目给出了以下错误。

error LNK2019: unresolved external symbol "void __cdecl abf(void)" (?abf@@YAXXZ) referenced in function _main

我尝试了一些方法,例如将函数放在extern“C”块中,使用__declspec(dllexport)导出但似乎没有任何效果。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

使用test.h中的__declspec(dllexport)导出符号

extern "C" __declspec(dllexport) void abf(void);