簡體   English   中英

為什么我不能用多個線程編譯OpenSSL? (使-j3)

[英]Why can't I compile OpenSSL with multiple threads? (make -j3)

我正在嘗試構建OpenSSL。 如果我用make (1個線程)構建它,則可以編譯。 但是,如果我用3個線程( make -j3 )構建它, make -j3得到很多鏈接器錯誤:

bntest.o: In function `message':
bntest.c:(.text+0x30): undefined reference to `BIO_puts'
bntest.c:(.text+0x3b): undefined reference to `BIO_puts'
bntest.o: In function `test_add':
bntest.c:(.text+0xe2): undefined reference to `BN_init'
bntest.c:(.text+0xec): undefined reference to `BN_init'
bntest.c:(.text+0xf6): undefined reference to `BN_init'
bntest.c:(.text+0x107): undefined reference to `BN_bntest_rand'
bntest.c:(.text+0x119): undefined reference to `BN_print'
bntest.c:(.text+0x126): undefined reference to `BIO_puts'
bntest.c:(.text+0x156): undefined reference to `BN_add'
bntest.c:(.text+0x166): undefined reference to `BN_add'
bntest.c:(.text+0x191): undefined reference to `BN_bntest_rand'
bntest.c:(.text+0x1d3): undefined reference to `BN_add'
bntest.c:(.text+0x1f5): undefined reference to `BN_print'
bntest.c:(.text+0x202): undefined reference to `BIO_puts'
bntest.c:(.text+0x20f): undefined reference to `BN_print'
bntest.c:(.text+0x21c): undefined reference to `BIO_puts'
bntest.c:(.text+0x264): undefined reference to `BN_free'
bntest.c:(.text+0x26e): undefined reference to `BN_free'
bntest.c:(.text+0x278): undefined reference to `BN_free'
bntest.o: In function `test_sub':
bntest.c:(.text+0x2af): undefined reference to `BN_init'
bntest.c:(.text+0x2b9): undefined reference to `BN_init'
bntest.c:(.text+0x2c3): undefined reference to `BN_init'
bntest.c:(.text+0x2e0): undefined reference to `BN_bntest_rand'
bntest.c:(.text+0x322): undefined reference to `BN_sub'
...and so on, for hundreds of lines...

需要明確的是,我運行的命令的確切順序是:

$ wget https://www.openssl.org/source/openssl-1.0.1l.tar.gz
$ tar -xzf openssl-1.0.1l.tar.gz
$ cd openssl-1.0.1l
$ ./config
$ make -j3

我在x64機器上的Ubuntu 14.10上。

這可能是一個RTFM類型的問題,但是我看不到任何地方都說不支持使用多個線程構建OpenSSL。

那么問題來了: 是否支持使用多個線程構建OpenSSL? 如果是這樣,我在做什么錯?

正如MadScientist的評論表明,makefile必須設計為支持並行構建。 顯然,OpenSSL應該支持並行制作,但是他們的錯誤報告之一表明,這種支持在某些情況下已被取消。 此錯誤最近被標記為已在2014年12月12日修復,因此使用較新版本的OpenSSL可能會解決您遇到的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM