On 11/28/2016 9:01 AM, Roger Taylor wrote:
I have successfully compiled and run a small application on SUSE 9.
This successfully find the curl library:
uschizlifa4304:/usr/lib> ll *libcurl*
-rwxr-xr-x  1 root root    823 2007-07-09 09:28 libcurl.la
lrwxrwxrwx  1 root root     16 2008-06-12 09:03 libcurl.so.2 -> libcurl.so.2.0.2
-rwxr-xr-x  1 root root 192100 2007-07-09 09:28 libcurl.so.2.0.2

uschizlifa4304:/usr/lib> rpm -qa | grep curl
curl-7.11.0-39.15


I am now trying to compile it on SUSE 11.

Compile command is:
cc -m32 -O2 -I$CSW_HOME/cinc -DOS_UNX -D_CCODE -DDB_ORACLE -DOS_SUN -DOS_SUSE11 
-o $1.EXE $filename `
cat $CSW_HOME/jobs/proc32.cmp` -lcurl -lcsigen -lcsigen2 -lcsidbo -lcsiunx 
-lcsiingr -lingeurol -lingpri
nt -lsockunx -limo2000 -lingfrght -lingfedx -lingesms

Which gives:
Compiling and Linking EUROLTST.c SUSE 11. . .
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: 
cannot find -lcurl
collect2: ld returned 1 exit status
Error in compiling and linking file EUROLTST.c

Curl is installed on the system:
uschizlifa4004:/app/csw/jobs> rpm -qa | grep curl
curl-7.19.7-1.51.1
libcurl4-7.19.7-1.51.1

And libcurl.so exists
uschizlifa4004:/app/csw/jobs> ll /usr/lib64/*libcurl*
lrwxrwxrwx 1 root root     16 May 11  2016 /usr/lib64/libcurl.so.4 -> 
libcurl.so.4.1.1
-rwxr-xr-x 1 root root 467504 Mar 23  2016 /usr/lib64/libcurl.so.4.1.1

I tried creating a link from the application object directory
uschizlifa4004:/app/csw/object> ll *libcurl*
lrwxrwxrwx 1 cswadm cswadm 27 Nov 28 08:34 libcurl.so -> 
/usr/lib64/libcurl.so.4.1.1

But this gives the error:
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: 
skipping incompatible /app/csw/object/libcurl.so when searching for -lcurl


"-m32" says "compile for 32 bits" but the libraries you are trying to use are 64 bits ("/lib64", "x86_64"). You probably do not have the 32-bit libraries installed on the newer machine. If you install a 64-bit OS on your machine, you typically get only 64-bit libraries by default and have to request 32-bit libraries explicitly. I don't use SUSE on any of my machines so I can't tell you the package names to look for, but they will typically be a variant of the 64-bit package names.

--
    David Chapman      [email protected]
    Chapman Consulting -- San Jose, CA
    Software Development Done Right.
    www.chapman-consulting-sj.com

-------------------------------------------------------------------
List admin: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:  https://curl.haxx.se/mail/etiquette.html

Reply via email to