2016-02-25 3 views
0

Я пытаюсь создать статическую программу с помощью gSoap.C статическая программа с gSoap

я скомпилировать программу с помощью команды:

gcc -c -Wall -g -I./gSoap/ -I/usr/share/gsoap/plugin/ -c -o singlePayment.o singlePayment.c 
gcc -o singlePayment singlePayment.o ./gSoap/soapC.c ./gSoap/soapClient.c -lgsoapssl -L/usr/lib/mysql -L/usr/lib -L/lib -lmysqlclient -lssl -lz -lcrypto -Wl,--no-as-needed -ldl -static -fno-stack-protector 

Ошибка после запуска програмного:

*** stack smashing detected ***: ./singlePayment terminated 
======= Backtrace: ========= 
[0x6ee755] 
[0x6ee71e] 
[0x59aa2a] 
[0x59ab34] 
[0x57fcfe] 
[0x400762] 
[0x6aa4a3] 
[0x400469] 
======= Memory map: ======== 
00400000-00833000 r-xp 00000000 08:01 6687104       /home/valon/paypalSOAP/singlePayment 
00a32000-00a43000 rw-p 00432000 08:01 6687104       /home/valon/paypalSOAP/singlePayment 
00a43000-00a72000 rw-p 00000000 00:00 0 
017e5000-01863000 rw-p 00000000 00:00 0         [heap] 
7f2cc5007000-7f2cc501a000 r-xp 00000000 08:01 9962058     /lib/x86_64-linux-gnu/libresolv-2.13.so 
7f2cc501a000-7f2cc5219000 ---p 00013000 08:01 9962058 

       ... 

7ffe8ffe7000-7ffe8ffe8000 r-xp 00000000 00:00 0       [vdso] 
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0     [vsyscall] 
Abgebrochen 

та же программа работает, если я Скомпилируйте, что, как ни один статический.

gcc -c -Wall -g -I./gSoap/ -I/usr/share/gsoap/plugin/ -c -o singlePayment.o singlePayment.c 
gcc -o singlePayment singlePayment.o ./gSoap/soapC.c ./gSoap/soapClient.c /usr/share/gsoap/plugin/logging.c -lm -lgsoapssl -lssl 

любая идея, почему это происходит?

+0

http://stackoverflow.com/a/1347464/4181011 –

ответ

1

Кажется, что вы используете OpenSSL. Если да, скомпилируйте с помощью gcc -DWITH_OPENSSL, чтобы убедиться, что вы можете использовать функции soap_ssl_X, а контекст двигателя, объявленный в stdsoap2.h, будет включен с поддержкой SSL.