簡體   English   中英

鏈接器錯誤,使用g ++鏈接到gcc編譯的庫,對該函數的未定義引用

[英]Linker error, using g++ to link to a library compiled by gcc, undefined reference to that function

我編寫了一個C函數,該函數調用openssl/sha.h定義的函數,假設聲明為"helper.h" ,實現為"helper.c ”。 然后,我使用gcc編譯了該函數並將其放入庫中:

gcc -std=c99 -lcrypto -lssl -c helper.c -o helper.o
ar -rc helper.a helper.o

然后,我編寫了一個cpp函數,該函數調用在"helper.h"聲明的函數。 我加了

extern "C" {
#include "helper.h"
} 

該cpp文件中的內容,然后我用了

g++ test.cpp helper.a -o cpp

然后發生ld錯誤,並說我遇到了對openssl/sha.h定義的函數的未定義引用。 我不知道該如何解決?

sslcrypto庫添加到最終命令中,以便將這些庫鏈接到您的程序。

您還必須遵守該順序:由於sll使用crypto因此必須首先將ssl放在后面,然后將crypto放在后面。

g++ test.cpp helper.a -o cpp -lssl -lcrypto

暫無
暫無

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

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