On Fri, Nov 20, 2015 at 12:52 AM, Guy Harris <g...@alum.mit.edu> wrote:
> > On Nov 19, 2015, at 3:29 PM, liu wen <caonimagongl...@gmail.com> wrote: > > > I want to statically compile a C project in a laptop(fedora), using > command > > line like: > > > > gcc -o myprogram -static main.c ... -levent -lpcap > > > > but I get error: > > > > /usr/bin/ld: cannot find -lpcap > > /usr/bin/ld: cannot find -lc > > > > I tried to locate libpcap.a and find no such a file > > See if there are libpcap RPMs that you haven't installed, perhaps one with > a name like "libpcap-dev" or something with "-dev" in the name, although > usually "-dev" packages include both static libraries and header files, so > without the "-dev" package you won't be able to compile anything. Perhaps > Fedora has separate packages for the libpcap runtime (shared libraries), > libpcap development (headers), and libpcap static libraries. > # locate libpcap-dev /var/lib/yum/yumdb/l/75ed44a0adeee36906852424e93dafd3a950ae77-libpcap-devel-1.3.0-2.fc18-x86_64 /var/lib/yum/yumdb/l/75ed44a0adeee36906852424e93dafd3a950ae77-libpcap-devel-1.3.0-2.fc18-x86_64/changed_by /var/lib/yum/yumdb/l/75ed44a0adeee36906852424e93dafd3a950ae77-libpcap-devel-1.3.0-2.fc18-x86_64/checksum_data /var/lib/yum/yumdb/l/75ed44a0adeee36906852424e93dafd3a950ae77-libpcap-devel-1.3.0-2.fc18-x86_64/checksum_type /var/lib/yum/yumdb/l/75ed44a0adeee36906852424e93dafd3a950ae77-libpcap-devel-1.3.0-2.fc18-x86_64/command_line /var/lib/yum/yumdb/l/75ed44a0adeee36906852424e93dafd3a950ae77-libpcap-devel-1.3.0-2.fc18-x86_64/from_repo /var/lib/yum/yumdb/l/75ed44a0adeee36906852424e93dafd3a950ae77-libpcap-devel-1.3.0-2.fc18-x86_64/from_repo_revision /var/lib/yum/yumdb/l/75ed44a0adeee36906852424e93dafd3a950ae77-libpcap-devel-1.3.0-2.fc18-x86_64/from_repo_timestamp /var/lib/yum/yumdb/l/75ed44a0adeee36906852424e93dafd3a950ae77-libpcap-devel-1.3.0-2.fc18-x86_64/installed_by /var/lib/yum/yumdb/l/75ed44a0adeee36906852424e93dafd3a950ae77-libpcap-devel-1.3.0-2.fc18-x86_64/reason /var/lib/yum/yumdb/l/75ed44a0adeee36906852424e93dafd3a950ae77-libpcap-devel-1.3.0-2.fc18-x86_64/releasever what commands/steps should I follow so as to get the libpcap.a? > > However, "cannot find -lc" means it also doesn't have a static version of > libc, so you'll also have to find a Fedora package with a static version of > libc. > how can I find a static version of libc? > > > if I compile dynamically, it successfully produces an executable > > > > ldd relay > > linux-vdso.so.1 => (0x00007fff4bfaf000) > > libevent-1.4.so.2 => /lib/libevent-1.4.so.2 (0x00007f14053a5000) > > libpcap.so.1 => /lib64/libpcap.so.1 (0x00000035b4a00000) > > libc.so.6 => /lib64/libc.so.6 (0x00000035b0a00000) > > libnsl.so.1 => /lib64/libnsl.so.1 (0x00000035cea00000) > > librt.so.1 => /lib64/librt.so.1 (0x00000035b1a00000) > > libresolv.so.2 => /lib64/libresolv.so.2 (0x00000035b2e00000) > > /lib64/ld-linux-x86-64.so.2 (0x00000035b0200000) > > libpthread.so.0 => /lib64/libpthread.so.0 (0x00000035b1600000) > > > > > > This executable only works in this laptop. > > Probably because either > > 1) the other laptops are running the same version of Fedora but > don't have all those shared libraries installed > > or > > 2) they're running some other OS, so that the libraries have > different pathnames. > > As far as I know, there's not much binary compatibility between different > Linux distributions for anything other than programs with no dynamic > libraries; there *might* be some level of binary compatibility allowing > software compiled for older versions of a distribution to run on newer > versions. > > > If I compile the project in > > other laptops, it doesn't work properly(the libpcap can't capture all > > packets successfully, I don't know why). > > I.e., if you compile it on another machine, it doesn't even work on *that* > machine? > yes, if I compile it on the other machine, it still doesn't work (it doesn't capture all passing-by packets on that machine) > What does "tcpdump -h" print on the laptop where the build works and on > the laptops where it doesn't? it doesn't works on laptop of tcpdump version 4.5.1 libpcap version 1.5.3 it works on laptop of tcpdump version 4.3.0 libpcap version 1.3.0 _______________________________________________ tcpdump-workers mailing list tcpdump-workers@lists.tcpdump.org https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers