我有一个Java文件(MyRtmpClient.java)中的以下内容: import org.apache.mina.common.ByteBuffer; 而ByteBuffer在JAR文件里(当然有适当的目录结构)。 那个jar文件和我需要的其他文件和.java文件在同一个目录下。 然后我用下面这行来编译: javac -cp ".;*.jar" MyRtmpClient.java 但是我得到的错误: MyRtmpClient.java:3: package org.apache.mina.common does not exist import org.apache.mina.common.ByteBuffer; 我如何在我的项目中包含jar文件?
我有一个包中导入javax.servlet。*和javax.servlet.http。*当我尝试编译它在命令提示符下,我得到错误 包javax.servlet不存在 我使用JDK 1.7.0和Tomcat 6.0。
我有一段代码会产生很多警告(不推荐使用的API) 使用铿锵*我可以做的 #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" … #pragma clang diagnostic pop 然而,这并不能迅速起作用。 如何迅速做到这一点? 注:我不想全局禁用警告,甚至文件范围,但只是在我的源代码的特定部分禁用特定的警告。 编辑:我看起来像我的笔记不够清楚:我不想要条件编译(这是所谓的重复build议的答案)。 我只是想沉默一个警告,而不使用新的API。
有没有什么办法可以从Java编译为独立(或库)机器代码而不需要JVM?
我有一个情况,我想从用户得到一个正则expression式,并运行几千个inputstring。 在手册中,我发现RegExp对象有一个.compile()方法,用于在这种情况下加快速度。 但是,为什么我必须再次传递正则expression式string,如果我已经在构造函数中传递它们呢? 也许构造函数执行compile()本身?
编译共享对象时遇到了很多问题,这些对象与静态库静态链接。 这个问题只出现在x84_64平台上。 当在x86_32上做同样的编译工作时,我没有任何问题。 也许这是一个操作系统特定的GCCconfiguration的事情,但我的研究表明,它的GCC如何在x86_64平台上工作。 无论如何,我在Ubuntu 10.04 x86_64上使用gcc 4.4.3。 问题是如何解决的?确保所有的静态库依赖关系都是用-fPIC编译的。 问题1: -fpic和-fPIC(显然-fPIC在x86上生成更多指令)有什么区别? 为什么后面的types在x86_64上下文中更相关? 问题2:我的假设是,当链接到静态代码时,您在链接时将函数硬连接到二进制文件,为什么它需要“位置独立代码”机制提供的间接级别? 问题3:现在,如果x86不需要-fpic / -fPIC来将共享对象与静态归档链接起来,为什么在x86_64中需要它? 问题4:即使需要,为什么不提供隐含的? 我认为改变应该是一个很大的禁忌
在Stack Overflow上的一个问题的答案 (见下文)给了我一个伟大的小软件的想法,这对任何地方的编码人员都是无价的。 我想象的是RAM驱动软件,但有一个关键的区别 – 它会镜像在我的硬盘驱动器上的真实文件夹。 更具体地说 – 包含我目前正在处理的项目的文件夹。 这样,任何构build几乎是瞬间的(或者至less快几个数量级)。 RAM驱动器将仅使用空闲资源在后台将其内容与硬盘驱动器同步。 一个快速的谷歌search没有透露,但也许我不知道如何谷歌。 也许有人知道这样的软件? 最好免费,但合理的费用也可以。 补充:一些解决scheme已经提出,我刚开始丢弃了。 他们会(没有特定的顺序): 购买更快的硬盘驱动器( SSD可能或10K RPM)。 我不想要硬件解决scheme。 不仅软件有可能会更便宜(免费软件,任何人),但它也可以用于硬件修改是不受欢迎的环境,如果不是不可能 – 比如在办公室。 让OS / HDD做caching – 它更好地知道如何使用你的空闲RAM。 操作系统/硬盘有通用的cachingalgorithmcaching一切,并试图预测哪些数据将来最需要的。 他们不知道,我的优先项目是我的项目文件夹。 而且大家都很清楚,反正他们并没有真正caching起来。 ;) 有大量的RAM驱动器; 使用其中之一。 对不起,这是鲁莽的。 每当有空闲时间时,我需要将数据同步回HDD。 在停电的情况下,我可以承受失去最后五分钟的工作,但不是自从我上次登记以来的一切。 新增2:想出了一个想法 – 使用一个普通的RAM驱动器加上一个后台文件夹同步器(但我的意思是背景 )。 有没有这样的事情? 补充3:有趣。 我只是在工作中尝试了一个简单的RAM驱动器。 重build时间从大约14秒降到大约7秒(不错),但增量构build仍然在5秒左右 – 就像硬盘一样。 任何想法为什么? 它使用aspnet_compiler和aspnet_merge 。 也许他们在其他地方使用其他临时文件? 补充4:哦,不错的新的答案! :)好的,我为你们所有的反对者提供了一些信息。 🙂 这个想法的主要原因之一,不是上述软件(14秒build造时间),而是另一个,我当时没有访问。 […]
我一直在使用Eclipse作为我的开发IDE。 我也用它将我的应用程序导出到.jar文件中。 当我在.jar文件中查看我的类时,我的一些类包含该类的名称,一个美元符号,然后是一个数字。 例: 查找$ 1.class 查找$ 2.class 查找$ 3.class Find.class 我已经注意到它在更大的class上这样做。 这是因为类变得如此之大,它编译成多个类? 我search了多个论坛,并search了Java文档,但还没有发现任何与之相关的内容。 有人可以解释吗?
我写了一个库,使用自编的Makefile进行编译,但现在我想切换到cmake。 树看起来像这样(我删除了所有不相关的文件): . ├── include │ ├── animation.h │ ├── buffers.h │ ├── … │ ├── vertex.h │ └── world.h └── src ├── animation.cpp ├── buffers.cpp ├── … ├── vertex.cpp └── world.cpp 所以我想要做的只是将源代码编译成共享库,然后将其与头文件一起安装。 我发现的大多数例子都是用一些共享库编译可执行文件,但从来不只是一个普通的共享库。 如果有人能够告诉我一个使用cmake的非常简单的库,这也是有帮助的,所以我可以使用这个例子。
我想在GIMP中跟踪一些代码,因此需要启用debugging符号的GIMP。 我不记得编译过程中是否启用了它们。 如何检查,而不重新编译程序?