在Ubuntu 11.10上编译C++和OpenSSL

neo*_*ben 3 c++ openssl g++

我在Ubuntu 11.10上编译我的C++和OpenSSL项目时遇到了严重的问题.编译命令是:

g++ -Wall -lssl -lm -lcrypto -I ./src ./src/server.cpp -o ./bin/server
Run Code Online (Sandbox Code Playgroud)

我收到这些错误:

server.cpp:(.text+0x8ff): undefined reference to `RSA_new'
server.cpp:(.text+0x92d): undefined reference to `PEM_read_RSAPrivateKey'
server.cpp:(.text+0xa85): undefined reference to `RSA_size'
server.cpp:(.text+0xaa1): undefined reference to `RSA_size'
server.cpp:(.text+0xae7): undefined reference to `RSA_private_decrypt'
server.cpp:(.text+0xd84): undefined reference to `BF_set_key'
server.cpp:(.text+0xf1d): undefined reference to `BF_ecb_encrypt'
server.cpp:(.text+0x13c6): undefined reference to `BF_ecb_encrypt'
collect2: ld returned 1 exit status
make: *** [server] Error 1
Run Code Online (Sandbox Code Playgroud)

我成功安装了openssllibssl-dev,但问题仍然存在.我尝试使用内核3.0在Linux Mint 12上编译项目,我遇到了同样的问题.在我使用内核2.6的旧Linux操作系统上,项目编译并运行良好(使用相同的Makefile和相同的源代码).请帮我!

smp*_*kes 8

通常,您需要-l在引用它们的代码后面有链接标志.尝试

g++ -Wall  -I ./src ./src/server.cpp -o ./bin/server -lssl -lm -lcrypto
Run Code Online (Sandbox Code Playgroud)