如何使用静态库(windows phone 8)

时间:2014-06-25 09:35:48

标签: c++ windows-phone-8 visual-studio-2013

我无法在MSVC-2013 for Windows Phone 8.0中获取与.exe应用程序链接的静态库。

我做了什么:

  1. File-> New-> Project-> DirectX App(Windows Phone 8.0) - >将其命名为“MyApp”。

    这个模板创建了一个很好的应用程序,可以毫无问题地编译和运行。

  2. 右键单击解决方案 - >添加 - >新建项目 - >静态库(Windows Phone 8.0)。我们称之为“MyLib”。

  3. 右键点击MyApp - >构建依赖关系 - >项目依赖关系 - >使其依赖于MyLib。

    仍然编译并运行。

  4. 转到MyLib.h并声明int my_function(int x)

  5. 转到MyLib.cpp并定义int my_function(int x) {return 0;}

  6. MyApp的CubeRenderer.cpp中的
  7. #include "MyLib.h"

  8. 在CubeRenderer.cpp的int y = my_function(6);中添加CubeRenderer::CubeRenderer()

  9. 这会产生链接器错误。

    error LNK2019: unresolved external symbol "int __cdecl my_function(int)" (?my_function@@YAHH@Z) 
    

    MyApp依赖于MyLib,因此我无需设置Linker->Input->Addidtional Dependencies。无论如何,我已经尝试过但仍然得到错误。

    我在MyLib.lib中搜索了?my_function@@YAHH@Z - 并在那里找到了5次。

    也许我不能使用名为Static Library (Windows Phone 8.0)的模板,而应使用DLL (Windows Phone 8.0)Windows Runtime Component (Windows Phone 8.0)

1 个答案:

答案 0 :(得分:1)

您需要将Project添加到Project引用以进行此构建。您可以通过右键单击项目Add-> References并单击Add New Reference并将MyLib作为项目添加到MyApp作为项目引用来添加。