编译几个二进制文件时,我收到了一些警告:
warning: incompatible implicit declaration of built-in function ‘strcpy’
warning: incompatible implicit declaration of built-in function ‘strlen’
warning: incompatible implicit declaration of built-in function ‘exit’
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我补充道
#include <stdlib.h>
Run Code Online (Sandbox Code Playgroud)
在与此警告关联的C文件的顶部,除了使用以下标志进行编译之外:
CFLAGS = -fno-builtin-exit -fno-builtin-strcat -fno-builtin-strncat -fno-builtin-strcpy -fno-builtin-strlen -fno-builtin-calloc
Run Code Online (Sandbox Code Playgroud)
我正在使用GCC 4.1.2:
$ gcc --version
gcc (GCC) 4.1.2 20080704
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能解决这些警告?
假设我有两个实体类:SocialApp和SocialAppType
在SocialApp我有一个属性:appURL和一个关系:type.
在SocialAppType我有三个属性:baseURL,name和favicon.
SocialApp关系的目的地type是单个记录SocialAppType.
例如,对于多个Flickr帐户,会有许多SocialApp记录,每条记录都包含指向某个人帐户的链接.会有一个SocialAppType针对"Flickr的"类型的记录,所有SocialApp记录将指向.
当我使用这个模式构建一个应用程序时,我得到一个警告,即SocialAppType和之间没有反比关系SocialApp.
/Users/username/Developer/objc/TestApp/TestApp.xcdatamodel:SocialApp.type: warning: SocialApp.type -- relationship does not have an inverse
Run Code Online (Sandbox Code Playgroud)
我需要反转,为什么?
我有一系列数字列表,例如:
[0] (0.01, 0.01, 0.02, 0.04, 0.03)
[1] (0.00, 0.02, 0.02, 0.03, 0.02)
[2] (0.01, 0.02, 0.02, 0.03, 0.02)
...
[n] (0.01, 0.00, 0.01, 0.05, 0.03)
Run Code Online (Sandbox Code Playgroud)
我想要做的是有效地计算所有数组元素的列表的每个索引的平均值和标准差.
为了做到这一点,我一直循环遍历数组并将列表的给定索引处的值相加.最后,我将"平均值列表"中的每个值除以n.
为了做标准偏差,我再次循环,现在我已经计算了平均值.
我想避免两次通过阵列,一次为平均值,然后一次为SD(在我有一个意思之后).
是否有一种有效的方法来计算两个值,只通过一次数组?解释语言(例如Perl或Python)或伪代码中的任何代码都可以.
Illegal Instruction: 4当在Mac OS X 10.7.x("Lion")和早期版本下运行这些二进制文件时,我在Mac OS X 10.8.2("Mountain Lion")下使用GCC 4.7.2编译的二进制文件出错.二进制文件在Mac OS X 10.8.x下正常工作.
我添加-mmacosx-version-min=10.5到我的编译标志,这似乎有助于解决10.5.x,10.6.x和10.7.x客户端的问题,无论该问题是什么.
哪来得到我的问题:
Illegal Instruction: 4错误是什么?-mmacosx-version-min=10.x在10.x更大的客户端上修复此特定错误?我想将这个修复程序应用到我的makefile中,但是在我触发之前想知道它是做什么的.(我会有更大的二进制文件吗?我还有64位二进制文件吗?我应该知道这种方法有什么问题吗?意想不到的副作用?等等)
什么是可以接受的减少iPhone应用程序盗版的方法,这些方法不违反Apple的评估流程?
如果我的应用程序"打电话回家"提供运行它的唯一设备ID,我需要收集哪些其他信息(例如,用于购买应用程序的Apple ID)以创建授权使用该应用程序的有效注册令牌?同样,我将使用什么代码来访问额外的数据?
目前看来这个问题最好的技术方法是什么?
(请避免关于盗版是如何不可避免的非编程答案等等.我知道盗版是不可避免的.我对基于编程的答案感兴趣,讨论如何减少盗版.提前感谢您的理解.)
我在SVN托管项目的根文件夹中trunk,正在探索设置两个分支.
一个分支将是当前(稳定)修订版中项目的"快照",第二个分支将是我将用于应用一些新代码,测试,然后将主干升级到新版本的分支.
我的目标是将快照保留为保险,并快速获得我们项目的旧版稳定版本.第二个分支,一旦我们应用新代码并且测试通过,将合并回主干,我们向公众提供.
要设置快照,我将我们复制trunk到一个名为的分支v1p2p3:
$ svn cp https://www.example.com/svn/trunk \
https://www.example.com/svn/branches/v1p2p3 \
-m "Branching from root trunk to v1p2p3 at r1114"
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好:
Committed revision 1115.
Run Code Online (Sandbox Code Playgroud)
我想要做的是将我的本地存储库副本切换到此分支,以确保一切正常,但我收到一条错误消息:
$ svn switch --relocate https://www.example.com/svn/trunk \
https://www.example.com/svn/branches/v1p2p3
Run Code Online (Sandbox Code Playgroud)
错误消息是:
svn: E155024: Invalid relocation destination:
'https://www.example.com/svn/branches/v1p2p3'
(does not point to target)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
(如果这不起作用,我怀疑我无法开始更雄心勃勃的第二分支.我正在寻找一种不会损坏现有项目布局的方法.感谢您的建议,以及如果这是一个愚蠢的问题,请道歉.)
在我的makefile中,我想检查是否存在库并提供信息性错误消息.我创建了一个条件,当找不到文件时应该退出make进程:
9: ifeq ($(${JSONLIBPATH}),)
10: JSONLIBPATH = ${ALTJSONLIBDIR}/${LIBJSON}
11: endif
12: ifeq ($(${JSONLIBPATH}),)
13: $(error JSON library is not found. Please install libjson before building)
14: endif
Run Code Online (Sandbox Code Playgroud)
我的makefile卡在第13行:
Makefile:13: *** commands commence before first target. Stop.
Run Code Online (Sandbox Code Playgroud)
在第13行之后,我的makefile有了它的目标.
我尝试将此条件块放入目标(例如,被调用的目标isJSONLibraryInstalled),但这不能正确执行.
在处理目标之前,我如何检查文件是否存在并处理错误情况?如果这是一个愚蠢的问题,请道歉.
我使用Apple的CoreDataBooks示例应用程序作为在后台将数据提取到辅助托管对象上下文的基础,然后将该数据合并到主要托管对象上下文中.
我所Book引入的数据是与Owner实体(称为"所有者")具有一对一关系的实体.该Owner实体与Book(称为"书籍")有很多关系.
我的数据是以下形式的XML文档:
<Owner>
<Name>alexpreynolds</Name>
<ID>123456</ID>
</Owner>
<Books>
<Book>Book One</Book>
<Book>Book Two</Book>
...
<Book>Book N</Book>
</Books>
Run Code Online (Sandbox Code Playgroud)
Book Onethrough Book N与one Owner("alexpreynolds, 123456")相关联.
我解析此为Owner实例和NSMutableSet组成的Book实例.
当我第一次尝试保存时,它保存得很好,合并的数据显示在表视图中.
但是,在第二次保存时,当XML内容包含新书时,它不起作用.
这是发生的事情:
然后,我尝试加载一个XML文档,该文档包含一个Book尚未在主要托管对象上下文中的新文档.新Book的使用Owner与其他Books 相关的相同.
我有例程挑选出这种独特的Owner管理对象(我已经在我的主要管理对象上下文)和独特的Book是没有在主MOC找到.
由此,我Book在辅助MOC中创建了一个新对象,并将其" owner"关系设置为指向Owner我在主要MOC中找到的唯一关系.
当我保存时,我收到以下错误:
*** Terminating app due to uncaught
exception 'NSInvalidArgumentException', …Run Code Online (Sandbox Code Playgroud) 我有一个用C和C++编写的开源代码库.我正在寻找一个保证至少 64位宽的整数类型,可以使用开源C和C++编译器在大多数OS X(Intel,64位)和Linux机器上可靠地编译,而不需要太多对最终用户的额外工作.Windows和32位客户端支持目前并不重要.
我在OS X上做了一些测试,开发人员工具附带的最新GCC不支持C + 11模式(因此似乎不保证可用性long long).Clang也不支持这一点,但是long long在某个版本之后它支持C99模式.
当便携性是一个重要目标时,是否使用一般建议int64_t代替long long?使用格式说明符似乎很痛苦.
我是否可以可靠地转换int64_t为long long(以及unsigned与之等效uint64_t)以将其long long用作现有函数和库作为参数?(当然,又回来了.)
在这种心态下,如果我发布的代码需要Clang功能而不是GCC,那么Clang是否会取代GCC作为Linux上的首选编译器?在大多数情况下,在为最终用户提供源代码时,这个编译器是我可以期待的吗?
基本上,我想向其他开发人员提出一些建议,他们使用这两种类型的可移植C和C++代码,考虑到上述目标,他们可能会对可能是更好的长期方法提出一些建议. .