[英]undefined reference error for g++ but not for gcc when using BSP library
[英]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
定義的函數的未定義引用。 我不知道該如何解決?
將ssl
和crypto
庫添加到最終命令中,以便將這些庫鏈接到您的程序。
您還必須遵守該順序:由於sll
使用crypto
因此必須首先將ssl
放在后面,然后將crypto
放在后面。
g++ test.cpp helper.a -o cpp -lssl -lcrypto
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.