ChiLi_Lin
2020-01-28 16:07
采纳率: 60%
浏览 1.0k

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();

    已采纳该答案
    打赏 评论
  • Chris_Mill 2021-04-22 15:26

    请问解决了嘛  好难呀。

     

    打赏 评论

相关推荐 更多相似问题