ChiLi_Lin 2020-01-28 16:07 采纳率: 60%
浏览 1278
已采纳

C/C++ 静态库的函数找不到 LNK2019 无法解析的外部符号 "int __cdecl Lib_Test(void)" (?Lib_Test@@YAHXZ),该符号在函数 _main 中被引用

附加包含目录,附加依赖项都添加了。
但就是静态库中定义的变量或者宏都可以用,函数却说找不到。
报错如下:静态库的函数找不到 LNK2019 无法解析的外部符号 "int __cdecl Lib_Test(void)" (?Lib_Test@@YAHXZ),该符号在函数 _main 中被引用

静态库 头文件

// libtest.h

#ifndef __HEAD_LIBTEST__
#define __HEAD_LIBTEST__

int TestValue = 1;

extern int Lib_Test();

#endif

源文件

//libtest.c
#include "libtest.h"

int Lib_Test()
{
    ++TestValue;
    return TestValue;
}

使用


#include "pch.h"
#include <iostream>
#include "libtest.h"

int main()
{
    std::cout << "Hello World!\n";
    // 下面调用Lib_Test 找不到符号
    Lib_Test();
    // 下面直接调用静态库变量 正确
    std::cout << TestValue;
    std::cout << "\nHello World!\n";
}

测试工程:
链接: https://pan.baidu.com/s/1GK57f7yYlIdEXTDFd-OVUg
提取码: h32m

  • 写回答

2条回答 默认 最新

  • threenewbee 2020-01-28 16:49
    关注

    int Lib_Test();
    ->
    extern int Lib_Test();

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?