将第三方库与 VS Cross-Platform C++ 移动应用程序项目链接
Linking 3rd Party Libraries with VS Cross-Platform C++ Mobile App Project
我需要一些关于在 Visual Studio Cross-Platform C++ 移动应用程序项目中 link 静态或动态库的正确方法的一般指导。
具体来说,我正在尝试 link 我的项目使用 libpng 构建,但我怀疑这是特定于该库的。
我已经成功构建了 libpng(和 zlib)。解决方案中的 Universal Windows App 项目运行并使用 libpng API 就好了。然而,Android 项目给我带来了 libpng 函数的未定义参考错误和非常高的血压。
headers 中定义的各种 libpng 类型不会导致错误,只会导致函数定义。我也相当确定编译器/linker 可以首先找到这些文件,因为当我从项目选项中删除对它们的引用时,我得到文件未找到错误而不是未定义的引用。我对 Clang 或 GCC 几乎没有经验,之前从未尝试过从 Visual Studio 构建它们。
我已经检查过, but the accepted answer actually contains misinformation. I've also seen this other SO question,它似乎描述了同样的问题,但那个问题与Eclipse有关;它的解决方案涉及makefile,这不适用于我的情况。
我已经尝试了我能想出的每一种排列,在原生 activity 和静态库项目中修改各种项目设置:将各种目录添加到项目设置,forward-slashes-vs-backslashes,手动指定 -l命令行上的命令以确保 link 顺序正确,一切都是徒劳。
显然,在 Visual Studio 项目中使用 third-party 库让 Clang 或 GCC 达到 link 时,我遗漏了一些东西(可能是基本的)。我感谢任何人可能提供给我的任何想法。谢谢。
我不再为此苦苦思索,而是决定自己在解决方案中构建库,而不是 link 从外部构建库。 (提供的 Visual Studio 模板可以轻松地放入现有模板并使其在开箱即用的情况下适用于所有项目。)
与其说这是一个替代解决方案,不如说这是一个答案,但这是我最终选择的路线,最后我认为这可能是更好的选择。 (显而易见的是,如果我最终需要这些库用于多个项目,那么这不是最有效的方法。但现在它不值得让我头疼。)
如果以后有人遇到这个问题并得到答案,我仍然非常感谢听到他们的意见!
我需要一些关于在 Visual Studio Cross-Platform C++ 移动应用程序项目中 link 静态或动态库的正确方法的一般指导。
具体来说,我正在尝试 link 我的项目使用 libpng 构建,但我怀疑这是特定于该库的。
我已经成功构建了 libpng(和 zlib)。解决方案中的 Universal Windows App 项目运行并使用 libpng API 就好了。然而,Android 项目给我带来了 libpng 函数的未定义参考错误和非常高的血压。
headers 中定义的各种 libpng 类型不会导致错误,只会导致函数定义。我也相当确定编译器/linker 可以首先找到这些文件,因为当我从项目选项中删除对它们的引用时,我得到文件未找到错误而不是未定义的引用。我对 Clang 或 GCC 几乎没有经验,之前从未尝试过从 Visual Studio 构建它们。
我已经检查过
我已经尝试了我能想出的每一种排列,在原生 activity 和静态库项目中修改各种项目设置:将各种目录添加到项目设置,forward-slashes-vs-backslashes,手动指定 -l命令行上的命令以确保 link 顺序正确,一切都是徒劳。
显然,在 Visual Studio 项目中使用 third-party 库让 Clang 或 GCC 达到 link 时,我遗漏了一些东西(可能是基本的)。我感谢任何人可能提供给我的任何想法。谢谢。
我不再为此苦苦思索,而是决定自己在解决方案中构建库,而不是 link 从外部构建库。 (提供的 Visual Studio 模板可以轻松地放入现有模板并使其在开箱即用的情况下适用于所有项目。)
与其说这是一个替代解决方案,不如说这是一个答案,但这是我最终选择的路线,最后我认为这可能是更好的选择。 (显而易见的是,如果我最终需要这些库用于多个项目,那么这不是最有效的方法。但现在它不值得让我头疼。)
如果以后有人遇到这个问题并得到答案,我仍然非常感谢听到他们的意见!