我需要一些关于在Visual Studio跨平台C ++移动应用程序项目中链接静态或动态库的正确方法的一般性指导。
具体来说,我正在尝试将我的项目与libpng构建链接,但我怀疑这是否特定于该库。
我已经成功构建了libpng(和zlib)。解决方案中的通用Windows应用程序项目运行并使用libpng API就好了。然而,Android项目给了libpng函数未定义的引用错误和非常高的血压。
标头中定义的各种libpng类型不会导致错误,只会导致函数定义。我也很确定编译器/链接器可以在第一时间找到文件,因为当我从项目选项中删除对它们的引用时,我得到文件未找到错误而不是未定义的引用。我对Clang或GCC没什么经验,之前从未尝试过用Visual Studio构建它们。
我已经检查了this SO question,但接受的答案实际上包含错误的信息。我也看过this other SO question,它似乎描述了同样的问题,但这个问题与Eclipse有关;它的解决方案涉及makefile,这在我的情况下是不适用的。
我已经尝试了每个排列,我可以在本机活动和静态库项目中修改各种项目设置:向项目设置添加各种目录,使用正斜杠 - 反斜杠,在命令上手动指定-l命令确保链接顺序正确的行,一切都没有。
显然,我错过了让Clang或GCC与Visual Studio项目中的第三方库链接的东西(可能是基本的)。我感谢任何人可能给我的任何想法。谢谢。
答案 0 :(得分:0)
我决定在解决方案中自己构建库而不是在外部链接它们,而不是再次敲打我的头。 (提供的Visual Studio模板使得放入现有模板变得微不足道,并使其在开箱即用的所有项目中都能正常工作。)
这不是一个替代解决方案的答案,但这是我最终采取的路线,最后我认为这可能是更好的选择。 (说明显而易见的是,如果我最终需要这些库用于多个项目,那么这不是最有效的方法。但是现在它对我来说并不值得头疼。)
如果有人在将来遇到这个问题并得到答案,我仍然非常希望听到他们的意见!