这是一个已经具有Visual Studio和Makefile构建的现有项目。这些构建将库放在“lib/Debug”目录中,将可执行文件放在“bin/Debug”目录中。因此,在Xcode中,我将编译产品路径分别更改为“lib”和“bin”(以便我们可以为所有平台使用一组文档)。这将编译后的目标放在正确的位置,但完全破坏了链接(找不到库)和依赖项。
对于每个可执行文件,我可以通过将“$(SRCROOT)/lib/Debug”添加到“Library Search Paths”来修复链接问题(但感觉Xcode应该能够自己解决这个问题,这让我认为我做错了什么)。
但是——我无法弄清楚如何再次使依赖项起作用。如果我更改库源文件,则库将重新构建,但相关的可执行文件却没有。如果我强制构建可执行文件,Xcode会返回成功而不执行任何操作;它认为目标是最新的。如果我清除目标,然后重建它,它就可以工作了。
那么,这里有什么想法吗?Xcode在这方面是否太过愚蠢,还是我做错了(我倾向于后者)?
更新:我在http://share.industriousone.com/XcodeDepsIssue.zip上发布了一个演示此问题的样本项目。构建一次,然后修改MyStaticLib.c并再次构建它。可执行文件将不会重新链接(但实际上应该)。非常感谢您在这件事情上提供帮助。