4
的時候我不知道這裏做什麼,我跑make
並得到了這一點:未定義參考編譯OpenSSL的
make[2]: Entering directory `/tmp/openssl-1.0.1/test'
(:; LIBDEPS="${LIBDEPS:--L.. -lssl -L.. -lcrypto -ldl}"; LDCMD="${LDCMD:-gcc}"; LDFLAGS="${LDFLAGS:--DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -fno-exceptions -Wa,--noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM}"; LIBPATH=`for x in $LIBDEPS; do echo $x; done | sed -e 's/^ *-L//;t' -e d | uniq`; LIBPATH=`echo $LIBPATH | sed -e 's/ /:/g'`; LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH ${LDCMD} ${LDFLAGS} -o ${APPNAME:=rc4test} rc4test.o ${LIBDEPS})
rc4test.o: In function `main':
rc4test.c:(.text+0x30): undefined reference to `OPENSSL_cpuid_setup'
collect2: ld returned 1 exit status
make[2]: *** [link_app.] Error 1
make[2]: Leaving directory `/tmp/openssl-1.0.1/test'
make[1]: *** [rc4test] Error 2
make[1]: Leaving directory `/tmp/openssl-1.0.1/test'
make: *** [build_tests] Error 1
我覺得這是一個gcc的東西,但我不知道如何處理這一點。我應該手動編譯這個嗎?
什麼是你的操作系統和你傳遞給'/ config'哪些參數? – 2012-07-08 12:10:14
我試過一些'-fPIC','-fno-exceptions',並且在./config和Debian Squeeze中沒有任何東西。我知道我可以使用'apt-get',但我寧願編譯自己的。 – Strawberry 2012-07-08 19:12:23
不作任何保證,但你可以嘗試編輯'crypto/cryptlib.c',尋找包含'#if!defined(OPENSSL_CPUID_SETUP)&&!defined(OPENSSL_CPUID_OBJ)'的行並移除刪除&&!defined(OPENSSL_CPUID_OBJ)片。您身處優秀公司,請參閱[這裏](http://code.google.com/p/chromium-source-browsing/source/browse/patches/empty_OPENSSL_cpuid_setup.patch?repo=third-party--openssl)。 – 2012-07-09 00:30:25