【发布时间】:2012-07-08 07:41:52
【问题描述】:
我不知道在这里做什么,我跑了make 并得到了这个:
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传递了什么参数? -
我尝试了一些东西
-fPIC,-fno-exceptions和 ./config 和 Debian Squeeze 我知道我可以使用apt-get,但我宁愿自己编译。 -
无保证,但您可以尝试编辑
crypto/cryptlib.c,查找包含#if !defined(OPENSSL_CPUID_SETUP) && !defined(OPENSSL_CPUID_OBJ)的行并删除删除&& !defined(OPENSSL_CPUID_OBJ)部分。你们相处融洽,见here。 -
“未定义的引用”是一个 LINKER 的“东西”。您指定了链接器在给定库集中找不到的函数。检查您的拼写,检查您的
-lxxx类型库选项。 (你得到那个命令行了吗?!?不,不..我不想知道) -
@Reinier 不,不行!不过谢谢!洛尼克斯,我试试看。