Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 加密++;64位机器上的32位编译_C++_Crypto++ - Fatal编程技术网

C++ 加密++;64位机器上的32位编译

C++ 加密++;64位机器上的32位编译,c++,crypto++,C++,Crypto++,我正在Ubuntu 64位机器上使用cryptopp。我需要编译32位的库,但我不知道如何编译 在调用make时,我应该对GNU Makefile进行一些更改还是使用可选参数?您可以尝试使用make CC='gcc-m32'CXX='g++-m32'构建它,但您可能需要几个32位库 您还可以在chroot-ed环境中设置32位分发(使用debootstrap),并在内部构建crypto++。gcc和g++有一个特定选项强制以32位模式编译,它是-m32。因此,如果应用程序的Makefile系统设

我正在Ubuntu 64位机器上使用
cryptopp
。我需要编译32位的库,但我不知道如何编译


在调用
make
时,我应该对GNU Makefile进行一些更改还是使用可选参数?

您可以尝试使用
make CC='gcc-m32'CXX='g++-m32'
构建它,但您可能需要几个32位库


您还可以在
chroot
-ed环境中设置32位分发(使用
debootstrap
),并在内部构建
crypto++

gcc
g++
有一个特定选项强制以32位模式编译,它是
-m32
。因此,如果应用程序的Makefile系统设置正确,则只需按如下方式运行编译:

$> CXX='g++ -m32' make
这应该足够了

我应该在GNU Makefile中做一些更改,还是在调用make时使用可选参数

每个人的答案都应该对你有用。为了显得迂腐,以下内容也适用于Crypto++5.6.3及更高版本。它被添加到
cxflags
,因为它是一个编译器选项:

export CXXFLAGS="-DNDEBUG -g2 -O2 -m32"
make static dynamic cryptest.exe
...

# Run validation suite
./cryptest.exe v

# Run test vectors
./cryptest.exe tv all

Crypto++5.6.2用于使用以下内容(从):

请注意,它无条件地设置了
CXX
cxflags
。这让我和其他一些用户感到非常烦恼,所以这是我们在Wei将图书馆移交给社区后所做的第一件事

Crypto++5.6.3及更高版本改变了这一点。makefile尝试尊重用户提供的所有内容,包括
CXX
cxflags
AR
ARFLAGS
等(来自):



如果你正在为嵌入式和移动平台执行交叉编译,苹果公司将遵循同样的原则来交叉编译GNUmakefile。

什么Ubuntu版本?是否已为多拱设置?快速且精确。工作起来很有魅力。谢谢
 1 CXXFLAGS = -DNDEBUG -g -O2
 2 # -O3 fails to link on Cygwin GCC version 4.5.3
 3 # -fPIC is supported. Please report any breakage of -fPIC as a bug.
 4 # CXXFLAGS += -fPIC
 ...
 8 ARFLAGS = -cr  # ar needs the dash on OpenBSD
 9 RANLIB = ranlib
...
25 ifeq ($(CXX),gcc)  # for some reason CXX is gcc on cygwin 1.1.4
26 CXX = g++
27 endif
...
 1 # Base CXXFLAGS used if the user did not specify them
 2 CXXFLAGS ?= -DNDEBUG -g2 -O2
...
14 AR ?= ar
15 ARFLAGS ?= -cr # ar needs the dash on OpenBSD
16 RANLIB ?= ranlib
...
49 # We honor ARFLAGS, but the "v" often option used by default causes a noisy make
50 ifeq ($(ARFLAGS),rv)
51 ARFLAGS = r
52 endif
...