将wxWidgets集成至现有XCode C++项目的问题及解决
wxWidgets集成到现有XCode C++项目的编译问题解决记录
问题背景
- 网上有不少关于为wxWidgets搭建新XCode项目的教程,但我需要把wxWidgets集成到一个大型现有XCode C++项目中,对wxWidgets的配置流程并不熟悉。
- 通过自带的
wxcocoa.xcodeproj文件在XCode中构建了wxWidgets,添加完所有头文件和libwx_osx_cocoa.dylib库后,出现了Use of undeclared identifier 'wxApp'、No matching constructor for initialization of 'wxEvent'这类编译错误。 - 尝试过终端构建、
make install安装、将wx-config --cxxflags --libs all添加到项目编译链接标志,均无效果,折腾两天仍未解决问题。
排查与解决过程
编辑1:锁定问题出在XCode
终端中可以正常编译wxWidgets的Hello World示例,但将相同代码放入新XCode项目后无法构建。(附wx-config输出及XCode项目设置截图)
编辑2:发现编译器差异
XCode使用clang构建,而终端中成功编译用的是clang++——clang仅链接C库,这应该是错误的根源。
编辑3:解决Hello World编译问题
意外找到解决方法:将wxWidgets的编译标志从Project Build Settings转移到Targets Build Settings中,原因是Targets并未继承Project的设置。
编辑4:完成复杂项目集成
按照同样的配置迁移方法操作后,大型现有XCode项目终于可以和wxWidgets库一起编译了。
内容的提问来源于stack exchange,提问作者WaddleDee72
相关产品推荐
相关产品推荐

