无法链接对CryptoPP :: RSAFunction的VTT的未定义引用

时间:2019-01-24 11:25:46

标签: c++ arm64 crypto++

我在aarch64上使用Crypto ++,在编译使用cryptopp-7.0.0的二进制文件时遇到一个问题,我面对的唯一链接问题与def scroll(): xx = 10 while True: browser.execute_script("window.scrollTo(0, {})".format(xx)) xx += 10 有关,所有其他类都运行良好,这是程序本身,它实际上是一个隔离问题的基本程序:

RSAFunction

尝试使用此命令进行编译时:

#include "cryptopp/rsa.h"
using CryptoPP::RSA;

#include <string.h>
using std::string;

#include <unistd.h>

int main(void)
{
    RSA::PublicKey publicKey;
    return 0;
}

我遇到了这些错误:

~$ toolchain/bin/aarch64-libreelec-linux-gnueabi-g++ cryptopptestfile.cpp -o crypttest -L/toolchain/usr/lib -lcryptopp

这仅与:

有关
<artificial>:(.text+0xe7c): undefined reference to `vtable for CryptoPP::RSAFunction'
<artificial>:(.text+0xe80): undefined reference to `vtable for CryptoPP::RSAFunction'
<artificial>:(.text+0xea8): undefined reference to `VTT for CryptoPP::RSAFunction'
<artificial>:(.text+0xeb4): undefined reference to `VTT for CryptoPP::RSAFunction'
/tmp/ccs498WJ.ltrans0.ltrans.o: In function `CryptoPP::InvertibleRSAFunction::~InvertibleRSAFunction()':
<artificial>:(.text+0x10c0): undefined reference to `vtable for CryptoPP::InvertibleRSAFunction'
<artificial>:(.text+0x10c4): undefined reference to `VTT for CryptoPP::InvertibleRSAFunction'
<artificial>:(.text+0x10c8): undefined reference to `vtable for CryptoPP::InvertibleRSAFunction'
<artificial>:(.text+0x112c): undefined reference to `VTT for CryptoPP::InvertibleRSAFunction'
/tmp/ccs498WJ.ltrans0.ltrans.o: In function `CryptoPP::InvertibleRSAFunction::InvertibleRSAFunction()':
<artificial>:(.text+0x12e4): undefined reference to `VTT for CryptoPP::InvertibleRSAFunction'
<artificial>:(.text+0x12f8): undefined reference to `VTT for CryptoPP::InvertibleRSAFunction'
<artificial>:(.text+0x1324): undefined reference to `vtable for CryptoPP::InvertibleRSAFunction'
<artificial>:(.text+0x132c): undefined reference to `vtable for CryptoPP::InvertibleRSAFunction'
<artificial>:(.text+0x13cc): undefined reference to `VTT for CryptoPP::InvertibleRSAFunction'
<artificial>:(.text+0x13dc): undefined reference to `VTT for CryptoPP::InvertibleRSAFunction'

感谢帮助。

以下是编译标志:

cryptopp::RSAFunction(s)

g ++版本:

arch64-libreelec-linux-gnueabi-g++ -march=armv8-a+crc+fp+simd -mabi=lp64 -Wno-psabi -mcpu=cortex-a53+crc+fp+simd -fomit-frame-pointer -Wall -pipe -Os -flto -ffat-lto-objects -fPIC -pipe -c rsa.cpp

1 个答案:

答案 0 :(得分:0)

已确定问题,这是因为此编译标志:

idx = ((old['Pub Date'] == new['Pub Date'])
       & (old['Forecast Time'] == new['Forecast Time'])
       & (old['Forecast Date'] == new['Forecast Date'])
       & (old['State'] == new['State'])

if ~np.all(idx==False):
    # now concatenate the new data onto the old dataframe.
    old = pd.concat([old, new.loc[~idx, :], axis=0)

我删除此编译标志后,一切正常,请注意激活此标志:

-flto

使用从6.0.0到8.0.0版本测试的RSAFunction时,此标志会断开链接器