關於GCC編譯問題

請教各位大大~~

我編譯一個RSA的file....出現以下錯誤!!

rsa_test.c: In function `main':

rsa_test.c:67: warning: assignment makes pointer from integer without a cast

/tmp/ccWWHC4W.o(.text+0x2e): In function `RSAEncrpty':

: undefined reference to `BN_num_bits'

/tmp/ccWWHC4W.o(.text+0x58): In function `RSAEncrpty':

: undefined reference to `BN_num_bits'

/tmp/ccWWHC4W.o(.text+0x10a): In function `RSAEncrpty':

: undefined reference to `RSA_public_encrypt'

/tmp/ccWWHC4W.o(.text+0x145): In function `RSAEncrpty':

: undefined reference to `RSA_public_encrypt'

/tmp/ccWWHC4W.o(.text+0x1b5): In function `RSADecrypt':

: undefined reference to `BN_num_bits'

/tmp/ccWWHC4W.o(.text+0x262): In function `RSADecrypt':

: undefined reference to `RSA_private_decrypt'

/tmp/ccWWHC4W.o(.text+0x30f): In function `main':

: undefined reference to `BN_num_bits'

/tmp/ccWWHC4W.o(.text+0x58): In function `RSAEncrpty':

: undefined reference to `BN_num_bits'

/tmp/ccWWHC4W.o(.text+0x10a): In function `RSAEncrpty':

: undefined reference to `RSA_public_encrypt'

/tmp/ccWWHC4W.o(.text+0x145): In function `RSAEncrpty':

: undefined reference to `RSA_public_encrypt'

/tmp/ccWWHC4W.o(.text+0x1b5): In function `RSADecrypt':

: undefined reference to `BN_num_bits'

/tmp/ccWWHC4W.o(.text+0x262): In function `RSADecrypt':

: undefined reference to `RSA_private_decrypt'

/tmp/ccWWHC4W.o(.text+0x30f): In function `main':

: undefined reference to `RSA_generate_key'

/tmp/ccWWHC4W.o(.text+0x367): In function `main':

: undefined reference to `RSAEncrypt'

collect2: ld returned 1 exit status

請問這是瞎密問題>??

我make打gcc -I /usr/local/ssl/include rsa_test.c

1 個解答

評分
  • 匿名使用者
    1 0 年前
    最佳解答

    看來 只是單純你沒正確連結到library

    -IDirName

    將目錄DirName設定為搜尋標頭檔目錄之一

    -LDirName

    將目錄DirName設定為搜尋程式庫目錄之一

    你的make command 欲指定.h標頭檔搜尋路徑

    注意 你只是指定路徑

    但要搜尋那支.h 你必須於rsa_test.c指定

    #include<XXXXX.h>

    或者 你可不加入-I/usr/local/ssl/include

    直接在rsa_test.c檔內加入 #include "/usr/local/ssl/include/XXX.h"

    AND 你的library並沒有正確連結到

    在LINUX下 libary檔應該是.o .so .a等等

    你必須在make command內加入正確library路徑 -L

    例如

    gcc -O2 -I/usr/local/ssl/include -L/usr/lib/ssl rsa_test.c -o ans

    參考參考

還有問題?馬上發問,尋求解答。