C-Motif code project porting from unix to linux - c

I am porting C-Motif code project from unix to ubuntu linux system.
I'm able to solve various problems but still there are some problems while doing make.
/usr/bin/ld: cannot find -lXmu
/usr/bin/ld: cannot find -lnls
/usr/bin/ld: cannot find -lsocket
/usr/bin/ld: cannot find -ll
collect2: error: ld returned 1 exit status
make: *** [../bin/ipsge] Error 1

For -lXmu install:
sudo apt-get install libxmu-headers
sudo apt-get install libxmu-dev
Try compiling without -lnls / -lsocket
and see if the problem is fixed.
I don't know libl.a What flavor of UNIX are you porting from?

Related

GCC:- unable to find libpthread_nonshared.a file while linking libraries to create a so file on Linux

Hi I'm trying to compile a c project with gcc 10.2 in Ubuntu 20.04.
But at the end it gives me error as below
/usr/bin/ld: cannot find /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a
collect2: error: ld returned 1 exit status
Below are the libraries I'm trying to link while creating a so file
-lpthread -ldl -lm -lstdc++ -lrt
When i looked into /usr/lib64 i could see only *.so files but no *.a files.
Do we need to install them separately?
Could someone help with this.
Do we need to install them separately?
You need to install glibc-devel (or similar) package.

Compiling 32 Bit Application on 64 Bit Linux

I'm trying to compile a program for 32 bit on a 64 bit Kali Linux operating system.
Here is my system information:
root#kali:~/Desktop# cat /proc/version
Linux version 3.18.0-kali3-amd64 (debian-kernel#lists.debian.org) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP Debian 3.18.6-1~kali2 (2015-03-02)
When I try to compile my C project, it cannot find -lgcc:
root#kali:~/Desktop/Project# make
cc -o libor libor.c -fno-stack-protector -z execstack -m32 -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
collect2: error: ld returned 1 exit status
make: *** [all] Error 1
Note that I'm using the -m32 flag to force compilation for 32 bit.
Like suggested elsewhere, the 32 bit libraries should be installed which I did using the following command:
sudo apt-get install libc6-dev-i386
This however only changed the error message to the one seen above. I lost the previous one however I guess it no longer matters.
Please note that existing answers didn't help me so this is not a duplicate.
Try ensuring that your new 32-bit libraries are in the library search path. You can verify this by using the ldconfig command, and if the libraries' directories aren't listed, then use the tips in this web page: http://www.cyberciti.biz/faq/linux-setting-changing-library-path/
I don't know that the above is the cause of your problem, but it may be worth a try?
The problem is you likely only have the gcc for your current architecture and that's 64bit. You need the 32bit support files. For that, you need to install them
sudo apt install gcc-multilib
Once installed, run the below command to compile c-program to 32-bit binary executable
gcc -o libor libor.c -m32
Verify the binary is 32-bit or not by
file libor
apt-get install gcc-multilib
should do the trick.

'Cannot find -lc' error when linking a program using gcc and autoconf

I'm trying to compile a program written in C. ./configure was successful, but when I did make, it gave me an error. I did make check, and it said:
gcc -g -Wall -static -o multipht multipht.o multimatch.o multiweight.o multiwrite.o multisort.o multiclean.o
/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
("multipht" is the name of the program I'm trying to install.)
Could anyone tell me what the problem is?
Your system appears to not have a statically linkable C library. That's actually pretty common these days. Take off the -static flag and you should be good to go.
On Fedora, the static version of glibc is in the glibc-static package.
sudo yum -y install glibc-devel glibc-static

libpcap: 64bit machine has no compatible 32-bit libpcap library

I want to compile a .c file to 32-bit executable using gcc option -m32 with libpcap
the machine is linux 64bit fedora 16
however, I get the following error
[root#fdf source]# gcc -m32 -o test_tcp test_tcp.c -lpcap
/usr/bin/ld: skipping incompatible /usr/lib64/libpcap.so when searching for -lpcap
/usr/bin/ld: cannot find -lpcap
collect2: ld returned 1 exit status
I installed
yum install libpcap.i686
and then try to compile, but still get errors:
root#ddh-4.0# gcc -m32 -o test_tcp test_tcp.c -lpcap
/usr/bin/ld: skipping incompatible /usr/lib64/libpcap.so when searching for -lpcap
/usr/bin/ld: cannot find -lpcap
You need the development package in addition to the runtime library. So do
yum install libpcap-devel.i686

Gcc default version crashes

I working on open source GHDL project for my project purpose installed ghdl-0.29-2.143svn.4.fc16.src.rpm consisting of ghdl 0.29 and gcc 4.3.4 through rpm -i and rpmbuild -ba command successfully.
In ghdl folder, I edited one ada program then I did make and make install : no errors but it creates problem changes in gcc version 4.6.3 (default) to 4.3.4 and no gcc program execution gave error:
error: C compiler cannot create executables
See `config.log' for more details."
In config.log file /usr/bin/ld: cannot find crtbegin.o: No such file or directory
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
Thanks in advance
Regards
Raghu
Have you tried reinstalling glibc? That might work.

Resources