在同一解决方案中向项目添加静态库(Visual Studio 2012)

时间:2013-03-31 01:43:12

标签: visual-studio-2012 static-libraries

我正在尝试创建一个我将在项目中使用的静态库。库编译正常并为其创建* .lib文件。为了测试我的代码,我在同一个解决方案中添加了另一个项目。当我尝试构建测试项目时,我得到以下错误。

  

错误LNK1120:4个未解析的外部

     

错误LNK2019:未解析的外部符号“public:__thiscall> matrix :: ~matrix(void)”(?? 1?$ matrix @ M @@ QAE @ XZ)在函数_main中引用

     

错误LNK2019:未解析的外部符号“public:__thiscall> matrix :: matrix>(int,int)”(?? 0?$ matrix @ M @@ QAE @ HH @ Z)在函数> _main C中引用:\ Users \ Ryan \ Documents \ Spring 2013 \ ECE> 4007 \ PointCloudLib \ matrix_test \ matrix_test.obj matrix_test

     

错误LNK2019:未解析的外部符号“public:bool __thiscall&gt; matrix :: set(int,int,float)”(?set @?$ matrix @ M @@ QAE_NHHM @ Z)在函数&gt; _main <中引用/ p>      

错误LNK2019:未解析的外部符号“public:static void __cdecl&gt; matrix :: print(class matrix const&amp;)”(?print @?$ matrix @ M @@ SAXABV1 @@ Z)&gt;在函数中引用_main

要在我的代码中使用该库,我执行了以下步骤:

  1. 通过转到参考文献添加对静态库的引用...&gt;添加新参考..并选择我的库
  2. 通过配置属性&gt; C / C ++&gt;一般&gt;其他包含目录添加源文件到包含目录的目录(我觉得这不应该是必要的,因为它有点挫败创建一个目的库)
  3. 这些是Microsoft的msdn网站上列出的关于创建自己的静态库的步骤,而其他人正在说的是解决问题的方法。

    在项目中使用库需要做些什么吗?

    此外,这是我用来测试库的代码:

    #pragma once
    
    #include "stdafx.h"
    #include <iostream>
    #include "matrix.h"
    
    #define PI 3.14
    #define matrix_f matrix<float>
    
    int main()
    {
        matrix_f m(3,4);
    
        for(int i = 0; i < 3; i++)
            for(int j = 0; j < 4; j++)
                m.set(i,j,PI/((i+1)*(j+1)));
    
        matrix_f::print(m);
    }
    

1 个答案:

答案 0 :(得分:0)

您需要添加对要在其中找到静态库的库目录的引用:

Configuration Properties->Linker->General->Additional Library Directories