【发布时间】: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