(我不确定这是否是提出此问题的正确位置。请移至合适的站点)
我有一个问题,显示在下面的代码中。它不适用于装有 CITRIX Xen App 6- 的机器(windows 2008)。没有错误,只是浏览器没有启动。在我的桌面(一个 windows7 盒子)上,它可以工作。
package trials;
import java.awt.*;
import java.io.File;
import java.io.IOException;
public class Launch {
public static void main(String[] args) throws IOException {
if (args.length < 1) {
System.out.println("argument filepath expected");
return;
}
final boolean browseSupported = Desktop.getDesktop().isSupported(Desktop.Action.BROWSE);
if ( !browseSupported) {
System.out.println("Browse not supported");
return;
}
final String filename = args[0];
final File file = new File(filename);
if (file.exists()) {
Desktop.getDesktop().browse(file.toURI());
} else {
System.out.println(file.getAbsolutePath() + " does not exist");
}
} …
Run Code Online (Sandbox Code Playgroud) 我正在 64 位上使用 GCC 编译 C++ 程序 - machine/OS/(带有-m64
传递给 的选项g++
)。正如预期的那样,sizeof(long double) == 16
– 我想知道是否有 16 字节长的整数标准类型?
PS__int128_t
是一种人工扩展,它模拟我所理解的标准类型。除此之外我什么也没找到。
我有2台(笔记本电脑和工作站),当我运行代码进行版本检查我上笔记本电脑:
computer
LAPTOP
OS props
Windows-7-6.1.7601-SP1
python props
('default', 'May 15 2013 22:44:16')
python version
2.7.5
OS bit and OS type
('64bit', 'WindowsPE')
check if system is 32bit or 64bit
('7fffffffffffffff', True)
numpy version
1.7.1
matplotlib version
1.3.0
Run Code Online (Sandbox Code Playgroud)
并在工作站上:
computer
WORKSTATION
OS props
Windows-7-6.1.7601-SP1
python props
('default', 'May 15 2013 22:44:16')
python version
2.7.5
OS bit and OS type
('64bit', 'WindowsPE')
check if system is 32bit or 64bit
('7fffffffffffffff', True)
numpy version
1.7.1
matplotlib version
1.3.0
Run Code Online (Sandbox Code Playgroud)
该软件主要是相同的,除了一些额外的包.但是当我尝试在工作站计算机上运行以下代码时:
import numpy as …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 gdb 调试 mingw-w64 编译的 32 位二进制文件。然而,gdb 给出了很多警告并且不显示任何堆栈跟踪。我怎样才能正常调试这个过程?
以下是一些相关细节:
--host=i686-w64-mingw32 --build=i686-pc-cygwin
标志与 wxWidgets 一起使用configure
。
ashish@DESKTOP-133N35M /cygdrive/c/Users/ashish/work/reachit
$ gdb program.exe
GNU gdb (GDB) (Cygwin 7.10.1-1) 7.10.1
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying" …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 64 位 CentOS 7.2 上构建并安装一个库。为了这个目的我正在跑步
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..
sudo make install
Run Code Online (Sandbox Code Playgroud)
当我运行上述命令时,我发现安装的库位于/usr/lib
而不是/usr/lib64
. 理想情况下,当我在 64 位 Linux 机器上编译时,安装目录是/usr/lib64
.
我最近能够构建具有本机64位支持的Apache Hadoop 2.5.1。因此,我摆脱了恼人的“本地库警告”。
我正在尝试配置Apache Spark。当我启动spark-shell时,会出现相同的警告:
14/09/14 18:48:42 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Run Code Online (Sandbox Code Playgroud)
一些技巧:
我必须下载一个预先构建的2.4版本的Spark,因为仍然没有Maven的Hadoop 2.5的配置文件。
以下导出已添加到spark-env.sh:
export HADOOP_CONF_DIR=/opt/hadoop-2.5.1/etc/hadoop
export SPARK_LIBRARY_PATH=/opt/hadoop-2.5.1/lib/native
Run Code Online (Sandbox Code Playgroud)
不适用于spark-shell和spark-submit。我的Hadoop本地安装配置为伪分布式(ResourceManager + YARN支持)。
我有一个非常奇怪的问题.
最近我为我的iOS项目(arm64)添加了64位支持,从那以后,我开始接收我的代码片段中未被捕获的异常@try...@catch
(我正在使用Crashlytics进行崩溃报告).我设法在我的应用程序中的任何地方使用以下代码行重现问题(我在其中init
一个视图控制器中编写了它们):
@try {
NSMutableDictionary *m = [[NSMutableDictionary alloc] init];
NSString *s;
m[s] = @"poop";
} @catch (NSException *e) {
NSLog(@"POOP");
}
Run Code Online (Sandbox Code Playgroud)
该异常由UncaughtExceptionHandler
而不是该@catch
子句捕获.我很困惑这会导致什么.控制台中的输出:
2015-02-22 19:19:53.525 [391:30650] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: key cannot be nil'
*** First throw call stack:
(0x18823a59c 0x1989400e4 0x1881251f8 0x10011e2f4 0x10011e068 0x10010e480 0x10010db78 0x10010d944 0x1000a8050 0x100075d88 0x100075160 0x100142044 0x100141f6c 0x18c9ecaa0 0x18caa1fb4 0x18caa1eb0 0x18caa134c 0x18caa0ff8 0x18caa0d18 0x18caa0c98 0x18c9e9648 0x18c341994 0x18c33c564 0x18c33c408 0x18c33bc08 0x18c33b98c …
Run Code Online (Sandbox Code Playgroud) 让我们MOV EAX,[0xFFFFFFFF]
以64位模式将指令编码为67A1FFFFFFFF
(有效地址大小由67前缀从默认的64位切换为32位)。
英特尔指令参考手册(从2015年12月起,文档订购号:325383-057US)在第Vol。2A 2-11说:
2.2.1.3
64位模式下的位移寻址使用现有的32位ModR / M和SIB编码。ModR / M和SIB大小不变。它们保留为8位或32位,并被符号扩展为64位。
这表明应该对32bit位移进行符号扩展,但是我不确定这是否也涉及特殊的moffs寻址模式。英特尔在下一页上说:
2.2.1.6 RIP相对寻址
RIP相对寻址是通过64位模式而不是64位地址大小启用的。地址大小前缀的使用不会禁用RIP相对寻址。地址大小前缀的作用是将计算的有效地址截断并将其零扩展为32位。
这表明在相对寻址模式下,将disp32符号扩展到64位,再添加到RIP,然后截断并进行零扩展。但是,我不确定同一规则是否适用于绝对寻址模式,MOV moffs操作就是这种情况。
从A)FFFFFFFFFFFFFFFF或B)00000000FFFFFFFF将EAX加载到哪个地址?
我使用Windows 10 Pro x64在PC上安装了QT 5.6.1 x64工具集(使用qt-opensource-windows-x86-msvc2015_64-5.6.1-1安装文件).似乎QT Designer(.../bin/designer.exe)没有启动.它位于任务管理器进程列表中(使用0%CPU和12 MB内存)但没有显示任何内容(没有窗口,飞溅等).
QT 5.1.1 x86工具集的QT Designer 正常工作.
我是否需要QT 5.6.1 x86工具集才能使用QT Designer工具?还是有另一种方式?
同样的问题是使用QT 5.7 x64
我开始学习汇编程序,这对我来说并不合乎逻辑.
为什么我不能在寄存器中使用多个更高的字节?
我理解rax
- > eax
- > 的历史原因ax
,所以让我们关注新的 64位寄存器.例如,我可以使用r8
和r8d
,但为什么不r8dl
和r8dh
?同样适用于r8w
和r8b
.
我最初的想法是,我可以使用8个r8b
在同一时间寄存器(就像我可以做的al
,并ah
在同一时间).但我不能.并且使用r8b
使完整的r8
寄存器"忙".
这提出了一个问题 - 为什么?如果您不能同时使用其他部件,为什么还只需要使用寄存器的一部分?为什么不保持只r8
忘记下部?
64-bit ×10
assembly ×2
c++ ×2
windows ×2
x86 ×2
x86-64 ×2
apache-spark ×1
build ×1
citrix ×1
cmake ×1
cygwin ×1
dll ×1
exception ×1
gdb ×1
hadoop ×1
hadoop-yarn ×1
ios ×1
ios8 ×1
java ×1
linux ×1
matplotlib ×1
mingw-w64 ×1
objective-c ×1
python ×1
qt ×1
qt-designer ×1
types ×1
windows-7 ×1
wxwidgets ×1
xenapp ×1