2016-03-30 41 views
1
Bir C derlemek geçmeye istiyorum

++ programı, derleme haç için libcrypto.so Tüm OpenSSL başlık dosyalarının bulunduğu varsayılan /usr/include yolu, proje üzerinde sağ tıklama ile içerme yolunu ayarlamak zorunda kaldım -> özellikler -> C/C++ Genel -> Yol ve Semboller -> Ekle ... ->/usr/include dahil etmek için başlık dosyaları. libcrypto.so ile aynıEclipse CDT Bağlantı bazı OpenSSL dosyaları kullanıyor

: -> Kütüphaneler -

... C/C++ Genel> Ekle ...

crypto ... C/C++ Genel -> Kütüphane Yolları -> Ben hata aşağıdaki almak projemi oluştururken /usr/lib/i386-linux-gnu

(bu klasörde ben librypto.so bulundu) ... ekleyin:

/opt/crosstool/arm-none-linux-gnueabi/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libcrypto.so when searching for -lcrypto 
    /opt/crosstool/arm-none-linux-gnueabi/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/i386-linux-gnu/libcrypto.a when searching for -lcrypto 
    /opt/crosstool/arm-none-linux-gnueabi/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lcrypto 

bir bağlantı hatası gibi görünüyor, ama ben nedenini bilmiyorum. Yardım için teşekkürler.

+0

Hangi sürüm OpenSSL kullanıyorsunuz? Bu nereden geliyor: '/ opt/crosstool/arm-none-linux-gnueabi'? (Tamam, bir cevabı test etmek için bir test teçhizatı kurmaya çalışıyorum). – jww

+0

1.0.1 sürümünü kullanıyorum. Yol, çapraz derleyicimin yoludur, çapraz derleyicimi yükledikten sonra varsayılan yol buydu. Bu yolda, gömülü donanımım için gereken tüm klasörlere, donanım için ek kütüphanelere ve ayrıca varsayılan kitaplıklara (ve başlık dosyalarına), ancak OpenSSL kitaplıklarına gerek duymuyorum. Libcrypto.so dosyalarını çapraz derleyicinin klasörlerine kopyalamaya çalıştım ama yine de aynı hata. – Snowman

cevap

1

Tamam, sonunda problemi çözdüm. ARM ile derlemek için kullanmak için OpenSSL'yi yapılandırmam gerektiğini bilmiyordum.

export cross=arm-none-linux-gnueabi- 
    cd openssl-1.0.1s 
    ./Configure dist --prefix=$HOME/opensslArm 
    make CC="${cross}gcc" AR="${cross}ar r" RANLIB="${cross}ranlib" 
    make install 

Şimdi ev dizininde opensslArm adında bir klasör vardır:

Sadece terminali ve türünü başlatın. Bu klasörde tüm başlık dosyalarını ve kütüphaneyi bulacaksınız. Yani Eclipse içinde opensslArm/include içerisine ekleyin ve kütüphane yollarınıza opensslArm/lib ekleyin. Daha fazla bilgi için buraya bakın: Cross Compile OpenSSH for ARM