本文不需要特定的编译器和环境配置,但您必须熟悉软件开发,因为可能需要诊断与设置有关的问题或配置错误。
No specific compiler or environment configuration is required, but you should be familiar with software development in order to diagnose problems or configuration issues specific to their setup.
在开始选择最佳操作环境之前,我将先分析在其他体系结构上编译代码所涉及的问题。
Before moving on to choosing the best operating environment, I'll examine the issues surrounding compiling the code on other architectures.
确定编译是否存在问题的最好方法是打开详细输出,确定编译发生的时间,进而确定它们是否影响应用程序计时。
Your best approach to see if compilation could be a problem is to turn on verbose output, indicating when compilations occur to see if they might affect your application timings.
如果问题继续存在,那么最好追踪预编译的二进制文件,即使这意味着寻找另一个发行版的文件。
If you continue to have problems, you might do well to track down a precompiled binary, even if that means locating one for another distribution.
优化器或查询编译器领域中的其他问题,例如SQL 0901n错误或实例崩溃,也可以使用本文中所解释的方法来重新创建。
Other problems in the optimizer or query compiler area, such as SQL0901N errors or instance crashes, can also be recreated using the methods explained in this article.
即便是某个JAR的版本不正确,您也会体验到难以排除的问题,例如编译错误或意料之外的行为。
If even one of the JAR versions is incorrect, you can experience problems that are difficult to troubleshoot, such as compilation errors or unexpected behavior.
惟一的问题在于,现在只有非常少的编译器实现了尾部调用优化。
The only problem is that right now very few compilers implement tail-call optimizations.
理想情况下,编译器应该能检测并警告开发人员这些潜在的问题,但是目前的。NET编译器甚至不能判定那些异常应该被抛出。
Ideally, the compiler would detect and alert developers to these potential issues, but current.net compilers cannot even determine which exceptions might be thrown.
问题是,这行代码是在编译时绑定的,这就太静态了。
The problem is that this line of code gets bound at compile time, and that's too static.
单元测试能够比单纯编译揭示出更多的问题。
试图在编译阶段验证动态代码会使你陷入停机问题的漩涡。
To try to verify dynamic code at compile time would likely walk you straight into the halting problem just like it would for many kinds of tooling.
通过使用gp2c编译器,可以为问题域创建快速运行的程序。
By using the gp2c compiler, fast-running programs can be created for the problem domains.
我亲自将evms补丁应用于基于-ac的内核;被拒的补丁不是很多,但我确实遇到了少数被拒的补丁和编译问题,理解和修正它们需要一定的技巧。
Personally, I'm using an -ac-based kernel with the EVMS patch; there weren't many rejects, but the few rejects and compilation problems that I did experience were a bit tricky to figure out and fix.
本文提到的所有问题(字节顺序、传递到编译器的选项等等)都有可能与移植有关。
All issues mentioned in this article might be relevant (byte-ordering, the options passed to the compiler, and so forth).
编译器的确提出那种应该在不同层次上处理并行的程序设计问题。
Compilers certainly present the sort of programming issue that should deal with parallelism at different levels.
大多数陷阱最大的问题是,不会有任何编译器警告或运行时错误告诉您事务实现是不正确的。
The biggest issue with most of them is that no compiler warnings or run-time errors tell you that the transaction implementation is incorrect.
大部分编译器都能够就可能导致问题的语句发出警告,即使这些语句并不导致编译错误。
Most compilers have the ability to issue warnings for statements that may cause bugs, even though these statements do not cause a compilation error.
一个构建发生故障时,我希望能够立即知道这一情况,以便就能够采取适当的行动来解决这一问题——不论那是编译错误、测试故障甚或是整体复杂性的增加。
When a build is broken, I want to know immediately so I can take the proper action to fix it — whether that be a compilation error, test failure, or even an increase in overall complexity.
应用程序、库、编译器、固件和操作系统的任何部分都可能是问题的根源,而硬件诊断探测不出这些问题。
Applications, libraries, compilers, firmware, and any part of the operating system can be the source many problems undetected by hardware diagnostics.
些许的谨慎加上对本文所介绍的命名约定、命令行参数和目录结构的注意,应该能够使您在问题最少的情况下编译和运行程序了。
A bit of care and some attention paid to naming conventions, command-line arguments, and directory structures should enable you to compile and run programs with a minimum of fuss.
在另外一些情况下,在JVM进程的代码中,但是在该进程的已编译代码之外,会产生崩溃或挂起,这可以说明问题是由于JIT编译的代码产生的。
In other cases, crash or a hang happens in code that is in the JVM process space yet outside the range of compiled code in that process, that would indicate a problem with JIT-compiled code.
它还可以消除与编译、类路径或属性相关的很多问题;这些问题可能会耗费大量的项目时间和资金。
It can also remove many issues that are related to compilation, classpath, or properties; these issues can cost a lot of project time and money.
在构建时、装入时或运行时修改这些字节码的时候,一些影响编译新字节码的问题也会出现。
Problems that could stem from compiling new bytecodes also apply to changing those bytecodes at build time, load time, or run time.
动态类加载是动态jit编译器面临的一个挑战,也是AOT编译的一个更重要的问题。
Dynamic class loading, which is a challenge for the dynamic JIT compiler, is an even more significant issue for AOT compilation.
这似乎是显而易见的事,但是您恐怕难以相信那些因缺乏编译而造成的问题,或者类路径问题(稍后还会提到)。
This may seem obvious, but you wouldn't believe the questions I get that relate to lack of compilation, or class path issues (also covered, a little later).
惟一的问题是,很多程序设计语言和编译器不知道如何除去没有用的栈结构。
The only issue is that many programming languages and compilers don't know how to get rid of unused stack frames.
由于采用这种方法所引起的编译负载可能会实际增加程序运行到出现问题的地方所需要的时间。
Because of the compilation overhead involved this may actually increase the amount of time it takes for your program to run up to the point where problem occurs.
当今的编译器或应用程序都会抓取esc键释出的扫描指令,并定制相应的操作。这没有什么问题。
Now any compiler or application software just grabs the scan code from the ESC key and tailors the action to what it wants. Nothing wrong with that.
JIT编译器的这一行为使双重检查锁定的问题只不过是一次学术实践而已。
The fact that JIT compilers do just this makes the issues of double-checked locking more than simply an academic exercise.
JIT编译器的这一行为使双重检查锁定的问题只不过是一次学术实践而已。
The fact that JIT compilers do just this makes the issues of double-checked locking more than simply an academic exercise.
应用推荐