CMake:如何从子项目的所有静态库创build单个共享库?

我有以下布局: top_project + subproject1 + subproject2 每个subproject1和subproject2创build一个静态库。 我想将这些静态库链接到top_project级别的单个共享库中。 我目前收集到的信息是: 要么编译使用-fPic (除了Windows之外的所有必要的),以创build位置无关的代码,这将允许将静态库链接到单个共享库或解压缩所有静态库(例如使用ar )并将它们重新链接到共享图书馆(我认为这是一个不雅的和非便携式的解决scheme) 所有的源文件必须明确地给予add_library命令:出于某种我不理解的原因,简单地写add_library(${PROJECT_NAME} SHARED subproject1 subproject2)不能按预期工作(它本质上创build一个空的库&不注册依赖关系正确) CMake中有一个OBJECT库特性,但是我不认为它的目的是真正做我想做的事情。 有什么想法吗?

如何使用jquery ui与requirejs

我想在我的应用程序中使用jQuery UI的addClass函数。 除了我正在使用正常的jQuery,下划线,骨干都与requirejs分层。 我已经这样configurationjQuery UI: require.config({ deps: ["main"], paths: { "text": "lib/text" , "jquery": "lib/jquery" , "jquery-ui": "lib/jquery-ui" , "underscore": "lib/underscore" , "backbone": "lib/backbone" , "bootstrap": "lib/bootstrap" , "templates": "../templates" }, shim: { "jquery-ui": { exports: "$", deps: ['jquery'] }, "underscore": { exports: "_" }, "backbone": { exports: "Backbone", deps: ["underscore", "jquery"] }, "bootstrap": ['jquery'] […]

我如何validation我在给定的GCD队列上运行而不使用dispatch_get_current_queue()?

最近,我需要一个函数来保证特定串行调度队列上给定块的同步执行。 有可能这个共享函数可以从已经在那个队列上运行的东西中调用,所以我需要检查这种情况,以防止从同步调度到同一队列的死锁。 我使用如下代码来做到这一点: void runSynchronouslyOnVideoProcessingQueue(void (^block)(void)) { dispatch_queue_t videoProcessingQueue = [GPUImageOpenGLESContext sharedOpenGLESQueue]; if (dispatch_get_current_queue() == videoProcessingQueue) { block(); } else { dispatch_sync(videoProcessingQueue, block); } } 这个函数依赖于使用dispatch_get_current_queue()来确定这个函数正在运行的队列的身份,并将其与目标队列进行比较。 如果有一个匹配,它知道只是在没有派发到该队列的情况下内联运行该块,因为该函数已经在其上运行。 我曾经听说过是否使用dispatch_get_current_queue()来进行比较是正确的,我在头文件中看到了这个字眼: build议仅用于debugging和logging目的: 代码不能对返回的队列做任何假设,除非它是全局队列或代码本身创build的队列之一。 如果该队列不是由dispatch_get_current_queue()返回的队列,则代码不能假定队列上的同步执行是安全的。 此外,在iOS 6.0(但尚未山狮),GCD标头现在标记为不推荐使用此function。 这听起来像我不应该以这种方式使用这个函数,但我不知道我应该用什么来代替它。 对于像上面那样针对主队列的函数,我可以使用[NSThread isMainThread] ,但是如何检查我是否在我的自定义串行队列中运行,以便可以防止死锁?

为什么不平滑更普遍?

从阅读维基百科关于sortingalgorithm的文章,似乎smoothsort是最好的sortingalgorithm。 它在所有类别中都有顶级的performance:最好的,平均的和最差的。 没有什么比它在任何类别中都要好。 它也有不断的内存需求。 唯一的缺点是它不稳定。 它在内存中击败timsort,在最坏的情况下性能和内存都能快速跳动。 但是我从来没有听说过smoothsort。 没有人提到过,大多数讨论似乎围绕着其他sortingalgorithm。 这是为什么?

版本控制数据库持久对象,你会怎样?

(与版本控制数据库模式无关) 与数据库交互的应用程序通常具有由多个表中的数据组成的域对象。 假设应用程序支持这些域对象的版本控制,就CVS而言。 对于一些仲裁域对象,你将如何devise一个数据库模式来处理这个需求? 任何经验分享?

如何在浏览器中使用Java applet?

我试图在我的网站上部署一个Java小程序。 我也需要签名,因为我需要访问剪贴板。 我已经遵循了我所能find的所有签名教程,但没有取得任何成功。 这是我迄今为止所做的: 在NetBeans中编写了一个小程序。 它在applet查看器中运行良好。 从中创build一个.jar文件。 通过这样做创build一个证书: keytool -genkey -keyalg rsa -alias myKeyName keytool -export -alias myKeyName -file myCertName.crt 像这样用jarsigner签名: jarsigner "C:\my path\myJar.jar" myKeyName 做了一个包含这个HTML文件: <html> <body> <applet code="my/path/name/myApplet.class" archive="../dist/myJar.jar"/> </body> </html> 当我打开该HTML文件,我从来没有得到安全确认对话框(从而得到“java.security.AccessControlException:访问被拒绝”错误)。 这发生在所有浏览器上。 我错过了一个步骤?

使用Node.jsstream式传输数据

我想知道是否有可能通过Node.js将数据从服务器stream式传输到客户端。 我想发布一个单一的AJAX请求到Node.js,然后离开连接打开,并不断stream数据到客户端。 客户端将收到这个stream,并不断更新页面。 更新: 作为这个答案的更新 – 我不能得到这个工作。 在您致电close之前,不会发送response.write 。 我已经build立了一个我用来实现这个function的示例程序: Node.js的: var sys = require('sys'), http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); var currentTime = new Date(); setInterval(function(){ res.write( currentTime.getHours() + ':' + currentTime.getMinutes() + ':' + currentTime.getSeconds() ); },1000); }).listen(8000); HTML: <html> <head> <title>Testnode</title> </head> <body> <!– This fields needs to […]

如何从django模板访问多对多“through”表的属性?

从Django文档… 当你只处理简单的多对多关系时,比如混合和匹配比萨饼和浇头,一个标准的ManyToManyField就是你所需要的。 但是,有时您可能需要将数据与两个模型之间的关系相关联。 例如,考虑跟踪音乐家所属的音乐组的应用的情况。 一个人和他们所属的小组之间有多对多的关系,所以你可以使用ManyToManyField来表示这种关系。 但是,关于您可能想要收集的会员资格有很多详细信息,例如join该组的人员的date。 对于这些情况,Django允许您指定将用于pipe理多对多关系的模型。 然后可以在中间模型上添加额外的字段。 中间模型使用through参数与ManyToManyField关联,指向将作为中介的模型。 对于我们音乐家的例子,代码看起来像这样: class Person(models.Model): name = models.CharField(max_length=128) def __unicode__(self): return self.name class Group(models.Model): name = models.CharField(max_length=128) members = models.ManyToManyField(Person, through='Membership') def __unicode__(self): return self.name class Membership(models.Model): person = models.ForeignKey(Person) group = models.ForeignKey(Group) date_joined = models.DateField() invite_reason = models.CharField(max_length=64) 现在您已经设置了ManyToManyField来使用您的中介模型(在这种情况下为Membership),您可以开始创build一些多对多的关系。 您可以通过创build中间模型的实例来执行此操作: ringo = Person.objects.create(name="Ringo Starr") paul = Person.objects.create(name="Paul […]

哪个Haskellparsing技术是最令人愉快的使用,为什么?

“愉快”的意思,例如:你可以用一种“自然”的方式写出语法,而不必以复杂的方式重写它们,而不必引入枯燥的样板。 为了这个问题的目的,我们要规定,除非技术的performance是病态的,否则performance不是这里最大的问题。 尽pipe如此,您可能想提及一个技术是否因性能原因而重写语法。 当回答这个问题时,请给我一个关于您所使用的语法的大小和复杂性的想法。 此外,您是否使用过该技术的任何显着的“高级”特征,以及您对这些特征的印象如何。 当然,这个问题的答案可能取决于领域,在这种情况下,我很乐意了解这个事实。

如何检测503服务临时不可用错误的原因并处理?

我得到了错误503服务临时不可用在我的应用程序多次,我想检测为什么会发生这个错误,怎么样? 如果有一个日志文件或类似的东西,因为我不熟悉的Apache。 第二件事是,是否有可能处理这个错误,当它发生的Apache重新启动?