spf-discuss
[Top] [All Lists]

Re: [spf-discuss] Liniking problem

2010-11-22 05:24:28
Thank you very much Jasper!

I can compile and link your foo.c without any problem, but I really don't
understand how it is possible.
Still can't compile my code and it's basically the same as yours, but in
three files (.h, .cpp and hello world main).

One diference:
You are using just #include <spf2/spf.h>, I'm using:

#include <spf2/spf.h>
#include <spf2/spf_dns.h>
#include <spf2/spf_dns_cache.h>
#include <spf2/spf_dns_resolv.h>

If I omit those 3, i got this error on compilation (so i don't even get to
linking):

Building file: ../src/SpfResolver.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/SpfResolver.d"
-MT"src/SpfResolver.d" -o"src/SpfResolver.o" "../src/SpfResolver.cpp"
../src/SpfResolver.cpp: In constructor
‘CstpSpf::SpfResolver::SpfResolver()’:
../src/SpfResolver.cpp:14:69: error: ‘SPF_dns_resolv_new’ was not declared
in this scope
../src/SpfResolver.cpp:16:95: error: ‘SPF_dns_cache_new’ was not declared in
this scope
../src/SpfResolver.cpp:17:65: error: ‘SPF_dns_set_conserve_cache’ was not
declared in this scope
make: *** [src/SpfResolver.o] Error 1

Missing space after -o isn't problem if you use quotes.
nm output contains ‘SPF_dns_resolv_new’,  ‘SPF_dns_cache_new’
and  ‘SPF_dns_set_conserve_cache’ too..

I'm attaching my three files, please look at them and try compile them,
maybe you will see where's the problem, because I am little desperate.
Thank you!

2010/11/22 Jasper Wallace <jasper(_at_)pointless(_dot_)net>

On Sun, 21 Nov 2010, Dunmer wrote:

Hello,

Sorry for bother you again with lame question, but I'm stuck on linking
with
libspf2.

I got these errors:

g++ -L/usr/local/lib -o"CstpSpf"  ./src/SpfResolver.o ./src/cstp_spf.o
-lspf2
./src/SpfResolver.o: In function `SpfResolver':
/home/dunmer/workspace/CstpSpf/Debug/../src/SpfResolver.cpp:14: undefined
reference to `SPF_dns_resolv_new(SPF_dns_server_struct*, char const*,
int)'
/home/dunmer/workspace/CstpSpf/Debug/../src/SpfResolver.cpp:16: undefined
reference to `SPF_dns_cache_new(SPF_dns_server_struct*, char const*, int,
int)'
/home/dunmer/workspace/CstpSpf/Debug/../src/SpfResolver.cpp:17: undefined
reference to `SPF_dns_set_conserve_cache(SPF_dns_server_struct*, int)

With this simple code:

this->spfResolvServer = SPF_dns_resolv_new(NULL, "spfResolv", DEBUG);
this->spfCacheServer = SPF_dns_cache_new(this->spfResolvServer,
"spfCache",
DEBUG, CACHE_SIZE);
SPF_dns_set_conserve_cache(this->spfCacheServer, CACHE_CONSERVE);

DEBUG, CACHE_CONSERVE and CACHE_SIZE are my constants.
I have built and installed libspf and its located in /usr/local/lib. I
tried
to move it to the /usr/lib with no success. I'm using Eclipse for C/C++
and
I have set libspf2 in libraries.
What am I doing wrong? Google didn't help. And what is with libspf2.org?

I will really appreciate your help. Thank you very much!

Not sure whats going on, libspf2 has those symbols on my box and i can
link a simple program (attached) with:

gcc -o fish -I/usr/local/include -L/usr/local/lib -lspf2 foo.c

It could be that your -o"CstpSpf" is being miss interpreted and needs a
space?

P.S. you can use 'ldd' to see which libraries a lib or binary is linked
against and 'nm' to see which symbols a library or program exports or
defines.

--
[http://pointless.net/]                                   [0x2ECA0975]



-------------------------------------------
Sender Policy Framework: http://www.openspf.org [http://www.openspf.org]
Modify Your Subscription: http://www.listbox.com/member/ 
[http://www.listbox.com/member/]

Archives: https://www.listbox.com/member/archive/735/=now
RSS Feed: https://www.listbox.com/member/archive/rss/735/2183229-668e5d0d
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=2183229&id_secret=2183229-a7234b15
Unsubscribe Now: 
https://www.listbox.com/unsubscribe/?member_id=2183229&id_secret=2183229-98aa0fe6&post_id=20101122062134:A8D0E54E-F62A-11DF-98BC-8B776BDBCF6D
Powered by Listbox: http://www.listbox.com

Attachment: cstp_spf.cpp
Description: Text Data

Attachment: SpfResolver.h
Description: Text Data

Attachment: SpfResolver.cpp
Description: Text Data

<Prev in Thread] Current Thread [Next in Thread>