【问题标题】:Linking 3rd Party Libraries with VS Cross-Platform C++ Mobile App Project将第 3 方库与 VS 跨平台 C++ 移动应用程序项目联系起来
【发布时间】:2017-09-27 17:19:05
【问题描述】:

我需要一些关于在 Visual Studio 跨平台 C++ 移动应用项目中链接静态或动态库的正确方法的一般指导。

具体来说,我正在尝试将我的项目与 libpng 构建链接,但我怀疑这是特定于该库的。

我已经成功构建了 libpng(和 zlib)。解决方案中的 Universal Windows App 项目可以正常运行并使用 libpng API。然而,Android 项目给了我未定义的 libpng 函数参考错误和非常高的血压。

头文件中定义的各种 libpng 类型不会导致错误,只会导致函数定义错误。我也相当确定编译器/链接器可以首先找到文件,因为当我从项目选项中删除对它们的引用时,我得到文件未找到错误而不是未定义的引用。我对 Clang 或 GCC 几乎没有经验,之前从未尝试过从 Visual Studio 使用它们进行构建。

我已经检查了this SO question,但接受的答案实际上包含错误信息。我也见过this other SO question,它似乎描述了同样的问题,但这个问题与Eclipse有关;它的解决方案涉及makefile,这不适用于我的情况。

我已经尝试了所有可以想出的修改本地活动和静态库项目中的各种项目设置的排列:将各种目录添加到项目设置中,正斜杠与反斜杠,在命令上手动指定 -l 命令行以确保链接顺序正确,一切都是徒劳的。

显然,在让 Clang 或 GCC 与 Visual Studio 项目中的第三方库链接方面,我缺少一些东西(可能是基本的)。我感谢任何人可能提供给我的任何想法。谢谢。

【问题讨论】:

  • 有没有考虑过不使用Visual Studio来构建,所以可以使用现有的android工具链?您仍然可以将 Visual Studio 用作编辑器。
  • @GabeSechan Visual Studio 允许您使用 NDK 工具链。我试过用 Clang 3.8 和 GCC 4.9 编译,但结果是一样的。

标签: android visual-studio-2015 cross-platform libpng


【解决方案1】:

我决定在解决方案中自己构建库,而不是从外部链接到它们,而不是再纠结于此。 (提供的 Visual Studio 模板让您可以轻松地放入现有的模板,并使其在所有项目中开箱即用。)

这不是一个答案,而是一个替代解决方案,但这是我最终选择的路线,最后我认为这可能是更好的选择。 (很明显,如果我最终需要这些库用于多个项目,那么这不是最有效的方法。但现在它不值得我头疼。)

如果将来有人遇到这个问题并得到答案,我仍然非常感谢听到他们的意见!

【讨论】:

    猜你喜欢
    • 2019-09-13
    • 1970-01-01
    • 2020-11-19
    • 2010-11-10
    • 1970-01-01
    • 2023-03-14
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多