我有重复的符号_main.
问题是它说"在/Users/.../i386/main-B9843B6026D6EFA4.o和/Users/.../i386/main-B9843B6026D6EFA4.o中复制符号_main",XXX和XXX实际上是相同的. o文件.我不知道为什么它认为它是重复的符号,当它是相同的.o ?!
任何帮助表示感谢,谢谢.
我已经创建了一个静态库来存放我的一些代码,比如类别.
我在"UIView-Extensions.h"中有一个名为Extensions的UIViews类别.
在这个类别中我有一个叫做的方法:
- (void)fadeOutWithDelay:(CGFloat)delay duration:(CGFloat)duration;
Run Code Online (Sandbox Code Playgroud)
调用此方法在Debug配置的模拟器上运行正常.
但是,如果尝试在设备上运行应用程序,我会收到NSInvalidArgumentException:
[UIView fadeOutWithDelay:duration:]: unrecognized selector sent to instance 0x1912b0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIView fadeOutWithDelay:duration:]: unrecognized selector sent to instance 0x1912b0
Run Code Online (Sandbox Code Playgroud)
似乎由于某种原因UIView-Extensions.h没有被包含在设备构建中.
我检查/尝试了什么
我确实尝试为NSString包含另一个类别,并且遇到了同样的问题.
其他文件,如整个类和函数都可以正常工作.这是一个仅在类别中出现的问题.
我做了一个干净的所有目标,但没有解决问题.
我检查了静态库项目,这些类别包含在目标的"copy headers"和"compile sources"组中.
静态库包含在主项目"链接二进制文件库"组中.
我添加静态库的另一个项目工作得很好.
我删除并重新添加静态库,没有运气
-ObjC链接器标志已设置
有任何想法吗?
nm输出
libFJSCodeDebug.a(UIView-Extensions.o):
000004d4 t -[UIView(Extensions) changeColor:withDelay:duration:]
00000000 t -[UIView(Extensions) fadeInWithDelay:duration:]
000000dc t -[UIView(Extensions) fadeOutWithDelay:duration:]
00000abc t -[UIView(Extensions) firstResponder]
000006b0 t -[UIView(Extensions) hasSubviewOfClass:]
00000870 t -[UIView(Extensions) hasSubviewOfClass:thatContainsPoint:]
000005cc t -[UIView(Extensions) rotate:]
000002d8 …Run Code Online (Sandbox Code Playgroud) 我刚开始学习C,并编写了我的hello world程序:
#include <stdio.h>
main()
{
printf("Hello World");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,我得到一个很长的错误:
Apple Mach-O Linker (id) Error
Ld /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug/CProj normal x86_64
cd /Users/Solomon/Desktop/C/CProj
setenv MACOSX_DEPLOYMENT_TARGET 10.7
/Developer/usr/bin/clang -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -L/Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug -F/Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug -filelist /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Intermediates/CProj.build/Debug/CProj.build/Objects-normal/x86_64/CProj.LinkFileList -mmacosx-version-min=10.7 -o /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Products/Debug/CProj
ld: duplicate symbol _main in /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Intermediates/CProj.build/Debug/CProj.build/Objects-normal/x86_64/helloworld.o and /Users/Solomon/Library/Developer/Xcode/DerivedData/CProj-cwosspupvengheeaapmkrhxbxjvk/Build/Intermediates/CProj.build/Debug/CProj.build/Objects-normal/x86_64/main.o for architecture x86_64
Command /Developer/usr/bin/clang failed with exit code 1
Run Code Online (Sandbox Code Playgroud)
我正在运行xCode
我应该重新安装DevTools吗?