有一段时间我通过创建2D游戏编程工具包/库来杀死业余时间.它是用Objective C编写的,由一个OpenGL渲染系统和一大堆AI,物理代码,一堆专门的容器和其他游戏相关的东西组成.除了基于OpenGL的View机制(显然)之外,大部分代码都应该可以轻松移植到iOS,因为它只使用了Foundation Framework,而且该框架似乎是在iOS上实现的.到目前为止,我只使用Cocoa NSOpenGLView测试各种组件,但现在我想创建一个OS X/iOS库.
我的问题是:
创建可以集成到iOS或OS X应用程序中的Objective-C库的最佳策略是什么?
Xcode的"新建项目"对话框仅提供:
iPhone OS ; 图书馆:
- 可可触摸静态库.
Mac OS X,框架和库:
- Cocoa框架
- Cocoa库
- Bundle
- BSD C库
- STL C++库
- JNI库
乍一看,似乎没有一个用于创建可以集成到OS X或iOS应用程序中的库.
我有一个项目正在退出alpha阶段,我准备开始定期发布.我知道GitHub有一个"魔术"释放按钮,但我通常不喜欢'魔术'功能,我不知道他们究竟做了什么:
https://github.com/blog/1547-release-your-software
据我所知,GitHub上的"魔术"发布功能只是在源存储库中为代码的某个状态创建一个标记,或者使用现有标记.根据该链接,标记名称必须反映语义版本号,即Major.Minor.Patch ex:v10.1.2或类似的东西.
一般来说,接受Git的方法就是简单地创建标签.我想做的是让Git在我的代码树中自动创建一些名为version.txt或version.h文件的文件,其中包含我创建的git标签的名称,以便该文件可以自动获取用户在命令行上发出myporgram --version.我最好喜欢一个自动生成的头文件,因为在构建程序时它会被集成到二进制文件中.有没有办法自动执行此操作,或者在发出git tag命令之前是否必须自动将标记号管道传输到文件中?
刚刚开始,我想说明我已经了解Python和其他用于在Raspberry PI上操作GPIO的高级实现.我也一直在使用WiringPI C API并且在Raspbian Jessie上遇到问题,即使我没有更改过一行代码,我还没有使用Raspbian Wheezy.此外,WiringPI C API开发人员表示,他没有立即支持Raspbian Jessie的计划,所以我没有划桨就行了.
出于这个原因,我一直在阅读以下关于使用sysfs访问Raspberry PI GPIO的教程(其中包括),因为这似乎是在不使用WiringPI而不编写我自己的GPIO库的情况下解决GPIO的一种方法:
http://www.hertaville.com/introduction-to-accessing-the-raspberry-pis-gpio-in-c.html
根据本教程,要将GPIO17设置为输入,请将字符串'in'写入文件句柄:
/ SYS /类/ GPIO/GPIO/17 /方向
...然后我可以从以下位置读取GPIO输入值:
/ SYS /类/ GPIO/gpio17 /值
这一切都很好,但我没有选择在我的生产板上装配上拉电阻.是否可以使用sysfs设置Raspberry PI的内置上拉和下拉电阻?
此外,如果通过sysfs设置上拉和下拉电阻是不可能的,我是否正确假设即使在最新的Raspbian Jessie中,唯一的另一种方法是直接写入GPIO寄存器?即使在Raspbian Jessie中也没有用于GPIO编程的官方C API?
我决定使用yaml-cpp v0.3库来解析我维护的FOSS守护进程的配置文件.我已经决定转向新的0.5 API,但到目前为止,我最大的问题是除了这个之外似乎没有任何适当的文档:
https://github.com/jbeder/yaml-cpp/wiki/Tutorial
...和一些第三方教程很好作为介绍,但在yaml-cpp源代码中似乎没有任何Doxygen注释.某处有像Doxygen这样的Doxygen吗?我更喜欢这个新的API,但缺乏文档使得使用它不必要地令人厌烦.
我有一个20世纪90年代早期编写的遗留Motif应用程序(我无法在QT中重写UI,甚至无需经过耗时的安全评估即可广泛修改应用程序).这个应用程序曾经在AIX上运行,它在密集使用下运行了几个星期并且稳定了.我们现在已将其移植到Linux.在长时间持续的Beta测试期间,应用程序每周大约崩溃一次,并显示以下消息.
请求失败的错误:BadWindow(窗口参数无效)
失败请求的主要操作码:4(X_DestroyWindow)
我已经了解到,使用自定义X11错误处理程序可以忽略这些错误(默认的X11错误处理程序只打印错误消息并退出),如下所示:
http://motifdeveloper.com/tips/tip29.html
我已经实现了一个自定义X11错误处理程序,它忽略了BadWindow错误,如该文章所述.所以我的问题是:对于X11开发和X服务器的内部工作有更多了解的人可以告诉我BadWindow错误是否真的可以被忽略吗?
PS我将尝试通过在同步模式下运行我们的应用程序来进一步调试,但这很慢,因为我无法按需重现此错误.有关调试BadWindow错误的任何提示也将不胜感激.
我刚开始使用git,它让我疯狂.如果我理解git正常工作的方式:
但是,如果我有一个已修改的100个跟踪文件,则单独添加它们以准备提交是相当繁琐的.当我从我的树根进行svn提交时,subversion将默认提交仅使用'svn add'添加或使用'svn rm'删除的已修改的跟踪文件.
所以问题是,是否有一个git命令可以执行'svn commit'所做的事情,即仅添加和提交已修改或删除的所有跟踪文件,而不是将树中的每个单独文件添加到临时池?