安装OpenSSL和libcrypt库的唯一项目 - 非系统版本

问题描述 投票:0回答:1

我有以下Makefile一个C项目:

CC=mpicc

buildsDir: ./builds
    mkdir ./builds

main: ./builds message dh main.c 
    $(CC) -o ./builds/main main.c ./builds/dh.o ./builds/message.o  -g -lcrypto -lssl

dh: ./builds dh.c dh.h
    $(CC) -c -o ./builds/dh.o dh.c -g -lcrypto -lssl

message: message.c message.h
    $(CC) -c -o ./builds/message.o -g ./message.c

run: main
    mpirun -quiet -np 3 xterm -hold -e ./builds/main &

debug: main
    mpirun -quiet -np 3 xterm -e gdb ./builds/main

.PHONY: clean

clean:
    rm -rf ./builds && mkdir ./builds

而在我的系统有OpenSSL的1.0.2g:

OpenSSL 1.0.2g  1 Mar 2016
built on: reproducible build, date unspecified
platform: debian-amd64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx) 
compiler: cc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
OPENSSLDIR: "/usr/lib/ssl"

但在我的原型软件,我需要的是更高版本,由于缺乏系统提供一个和我想避免在全球范围内安装。因此,我认为使用仅本地版本的有限Pro项目的范围。我发现these指令,给我很大的框架。

此外,我做的第一步是添加作为一个子模块到我的项目:

[submodule "openssl"]
    path = openssl
    url = https://github.com/openssl/openssl.git
    branch = OPENSSL_1_1_1a

在控制台上我试图建立它使用下面的命令集手动:

cd openssl
./config --prefix=$(pwd)/../builds/openssl --openssldir=$(pwd)/../builds/openssl
make && make test && make install

现在我想更进一步,不知怎么去告诉qazxsw POI链接位于不知何故qazxsw POI目录生成的OpenSSL的lib,但我不知道。

c makefile openssl gnu-make
1个回答
1
投票

如何改变你的makefile这样的吗?

mpicc

请检查qazxsw POI的布局正确和库路径。


奖金代码我个人会重组生成文件。为什么不让做处理繁重的工作?

builds
© www.soinside.com 2019 - 2024. All rights reserved.