Tag: 编程方式创build的

Linux内核中可能的()/不太可能的()macros – 它们是如何工作的? 他们有什么好处?

我一直在挖掘Linux内核的一些部分,并发现这样的调用: if (unlikely(fd < 0)) { /* Do something */ } 要么 if (likely(!err)) { /* Do something */ } 我find了他们的定义: #define likely(x) __builtin_expect((x),1) #define unlikely(x) __builtin_expect((x),0) 我知道他们是为了优化,但他们是如何工作的? 使用它们可以预期性能/尺寸会下降多less? 至less在瓶颈代码(当然是在用户空间),这是否值得麻烦(并且可能丢失可移植性)。

将PHP脚本转换为独立的Windows可执行文件

我想自动化一个相当简单的任务。 为此我写了一个小的PHP脚本,我使用PHP-CLI从命令行运行。 现在我想把这个脚本交给某人,但我不想: 放弃源代码 请他在系统上安装PHP 有没有办法创buildPHP脚本的.exe版本。 我真的不太担心反编译; 我更担心的是要求人们安装和configurationPHP。

加载的笔尖,但“视图”出口没有设置

我添加了一个新的笔尖文件到我的项目,并试图加载它。 但是,当我点击应该带我到我创build的视图的工具栏图标时,我得到一个NSInternalInconsistencyException与消息: 终止应用程序由于未捕获的exception'NSInternalInconsistencyException',原因:' – [UIViewController _loadViewFromNibNamed:bundle:]加载了“…”笔尖,但未设置视图sockets。 所以我打开了我的笔尖文件,我发现没有设置参考插口。 然而,我尝试点击并拖动“新的参考sockets”的文件的所有者,但它不会让我…我需要做什么才能让我的观点显示?

Xcode的“build立和存档”从命令行

Xcode 3.2提供了一个非常棒的新function,它可以生成一个适合Ad Hoc分发的.ipa文件。 您也可以打开pipe理器,转到“已存档的应用程序”和“提交应用程序到iTunesConnect”。 有没有办法从命令行(作为构build脚本的一部分)使用“构build和存档”? 我假设xcodebuild会以某种方式参与,但man页似乎没有说到这一点。 更新 Michael Grinich要求澄清; 以下是命令行构build无法完成的function,在“构build和存档”之后,您只能使用Xcode的Organizer进行这些function。 您可以点击“共享应用程序…”与betatesting人员分享您的IPA。 正如Guillaume指出的那样,由于一些Xcode的魔力,这个IPA文件不需要betatesting者需要安装的单独分发的.mobileprovision文件。 这是神奇的。 没有命令行脚本可以做到这一点。 例如,Arrix的脚本(5月1日提交)不符合要求。 更重要的是,在testing版本之后,您可以单击“提交应用程序到iTunes Connect”,将相同的内部版本提交给Apple,这是您testing的二进制文件,无需重新编译。 这在命令行中是不可能的,因为签名应用程序是构build过程的一部分; 您可以签署位进行Ad Hoctesting,或者您可以签名提交给App Store,但不能同时提交。 没有build立在命令行上的IPA可以在手机上testing,然后直接提交给苹果公司。 我喜欢有人来certificate我错了:这两个function在Xcode GUI中都很好用,不能从命令行复制。

识别和非识别关系有什么区别?

我还没有能够完全把握分歧。 你能描述两个概念并使用现实世界的例子吗?

Maven:什么是pluginManagement?

这是我的pom文件的一个片段。 …. <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.4</version> <executions> <execution> <phase>install</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> …… </configuration> </execution> </executions> </plugin> </plugins> … 我用命令成功地使用它 mvn install 但是,当我尝试将其包含到“pluginManagement”标记中时,在启动install目标时, maven-dependency-plugin停止工作。 为什么“pluginManagement”标签会改变构build行为? 还是应该使用另一个目标或选项?

NoClassDefFoundError – Eclipse和Android

我遇到了一个问题,试图运行一个Android应用程序,直到第二个外部库添加到其构buildpath,工作正常。 自从添加了scoreninja jar之后,当我尝试运行应用程序时,我现在得到一个NoClassDefFoundError 。 这里是消息: 02-11 21:45:26.154: ERROR/AndroidRuntime(3654): java.lang.NoClassDefFoundError: com.scoreninja.adapter.ScoreNinjaAdapter 由于所有的构build脚本都是由Android工具(?)生成的,我不知道除了清理和重build或重新启动eclipse(我已经尝试了所有三种)之外,还有什么可以做的。 有谁知道我可以如何修改这个?

Visual Studio“任何CPU”目标是什么意思?

我有一些与Visual Studio 2008中的.NET平台构build选项有关的困惑。 什么是“任何CPU”编译目标,它生成什么样的文件? 我检查了这个“任何CPU”构build的输出可执行文件,发现它们是x86可执行文件(谁也不会看到!)。 那么,将可执行文件定位到x86与“任何CPU”之间有什么区别吗? 我注意到的另一件事是托pipe的C ++项目没有这个平台作为选项。 这是为什么? 这是否意味着我怀疑“任何CPU”的可执行文件是纯32位的是正确的?

将AST编译回源代码

我目前正在构build一个用PHP编写的PHPparsing器,因为在我之前的问题中没有parsing器出现。 parsing器本身工作得很好。 现在很明显,parsing器本身没有什么好处(除了静态分析)。 我想将转换应用到AST,然后将其编译回源代码。 应用转换不是一个问题,一个正常的访问者模式应该做的。 我现在的问题是如何将AST编译回源代码。 基本上有两种可能性: 使用一些预定义的scheme编译代码 保持原始代码的格式,并仅在已更改的节点上应用1.。 现在我想把注意力集中于1,因为2似乎很难完成(但如果你有关于这方面的技巧,我想听听他们)。 但是我不确定哪个devise模式可以用来编译代码。 我看到实现这个最简单的方法是将->compile方法添加到所有节点。 我在这里看到的缺点是要改变生成输出的格式是相当困难的。 为了做到这一点,需要改变节点本身。 因此我正在寻找一个不同的解决scheme。 我听说访问者模式也可以用于这个,但我不能想象这是如何工作的。 正如我所了解的访问者模式,你有一些NodeTraverserrecursion遍历所有节点,并调用Visitor ->visit方法。 对于节点操作来说,这听起来很有希望, Visitor->visit方法可以简单地改变它所传递的Node,但是我不知道如何将它用于编译。 一个明显的想法是迭代节点树从叶到根,并用源代码replace访问过的节点。 但是,这似乎不是一个很干净的解决scheme?

在IB之下IBOutlets应该强大还是弱?

我正在使用ARC专门为iOS 5开发。 IBOutlet对UIView (和子类)是strong还是weak ? 下列: @property (nonatomic, weak) IBOutlet UIButton *button; 将摆脱所有这一切: – (void)viewDidUnload { // … self.button = nil; // … } 这样做有什么问题吗? 模板使用的strong与直接连接到“Interface Builder”编辑器中的标题时创build的自动生成的属性一样strong ,但是为什么? UIViewController已经有了strong引用,它保留了它的子视图。