Re: [spf-discuss] Liniking problem2010-11-22 05:24:28Thank 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 linkingwithlibspf2. 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. Itriedto move it to the /usr/lib with no success. I'm using Eclipse for C/C++andI 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
cstp_spf.cpp
SpfResolver.h
SpfResolver.cpp
|
|