Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C++ (http://www.go4expert.com/forums/cpp/)
-   -   Visual Studio 6.0 c++ libpurple compile (http://www.go4expert.com/forums/visual-studio-60-cpp-libpurple-compile-t20783/)

nattsurf123 27Jan2010 23:29

Visual Studio 6.0 c++ libpurple compile
 
Hi,
This is my first post.
I'm trying to compile libpurple. There is a tutorial on how to install it with mingw and using cygwin.

libpurple is included in pidgin chatt application.
I don't want to use mingw but visual studio. I want to try to build this manually just to learn.
I would like your help and advice on how to configure and get all nessesary component in order to make it compile.
I get this error:
c:\project\libpurple\libc_internal.h(38) : error C2143: syntax error : missing ')' before '*'
c:\project\libpurple\libc_internal.h(38) : error C2081: 'socklen_t' : name in formal parameter list illegal
Search on google gives:
Install Microsoft SDK
Suggested link not found on Microsoft but redirects to some 1.5 gig installation with server 2008, vista and dot.net.
I use a windows xp and visual studio 6.0 on a virtual pc.
Tried to remove as much components as possible from the installation just using source code files.
Installation resulted in 250 mb of data.
Don't know really what to do now after the installation.
The same error occure.
Any suggestions?

Sincerely
Anders
PS.
The hardest part with programming is to setup the project so it compiles.

xpi0t0s 28Jan2010 13:04

Re: Visual Studio 6.0 c++ libpurple compile
 
Your best bet will be to talk to the people who already know libpurple. There may be a good reason why instructions to build it with Visual Studio aren't included (i.e. a reason other than cost or it being from MS). Maybe the code will need non-trivial modifications to work in VS. But this may already have been done; doesn't Pidgin use libpurple, and I know that works on Windows.

But if you just want to do it yourself and find out what needs doing, best way to start is by looking at the error and the code it comes from and trying to determine what is causing the error. Is there a missing bracket before a *? What exactly is the code that fails? The next error complains about socklen_t: again, what is the code; the error suggests it could be trying to use something that hasn't been defined yet. Googling socklen_t finds it's part of the Unix header sys/socket.h - the way sockets work on Unix and Windows have significant differences (e.g. lack of OOB support on Windows) and you may have to modify libpurple substantially so that it can work with both implementations.

nattsurf123 28Jan2010 20:29

Re: Visual Studio 6.0 c++ libpurple compile
 
Quote:

Originally Posted by xpi0t0s (Post 63495)
Your best bet will be to talk to the people who already know libpurple. There may be a good reason why instructions to build it with Visual Studio aren't included (i.e. a reason other than cost or it being from MS). Maybe the code will need non-trivial modifications to work in VS. But this may already have been done; doesn't Pidgin use libpurple, and I know that works on Windows.

But if you just want to do it yourself and find out what needs doing, best way to start is by looking at the error and the code it comes from and trying to determine what is causing the error. Is there a missing bracket before a *? What exactly is the code that fails? The next error complains about socklen_t: again, what is the code; the error suggests it could be trying to use something that hasn't been defined yet. Googling socklen_t finds it's part of the Unix header sys/socket.h - the way sockets work on Unix and Windows have significant differences (e.g. lack of OOB support on Windows) and you may have to modify libpurple substantially so that it can work with both implementations.

Damn I wrote a long text, submitted and the forum said I was not logged in. Lost all the post I was going to submit. I'm going for a shorter reply now.

I'm following this link:

http:\\pidgin.im\pipermail\devel\2007-May\001041.html

It should work on visual studio.
pidgin.im is for bug report and my problem is not a bug.
Am I missing libs? Maybe it gives different error?
Maybe I need to add some paths.
This path I think was made after the install.
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include
Going to try but I'm sure it will not help.
Please give me some advice.

/Anders

nattsurf123 28Jan2010 21:18

Re: Visual Studio 6.0 c++ libpurple compile
 
Just to note I have tried to find a decent forum for pidgin or libpurple without any luck. So general c++ forums will have to suffice.

nattsurf123 2Feb2010 20:10

Re: Visual Studio 6.0 c++ libpurple compile
 
I have moved this project to VS 2008.
I couldn't find this:
C/C++::Advanced::Force Includes:
------------------------------------------------
winsock2.h; config.h

I'm not going to use a def file because I would like to mark functions as export instead.

When I try to compile under the current setup I get these errors:
Error 84 error C2054: expected '(' to follow 'STATIC_PROTO_INIT' c:\users\admin\documents\visual studio 2008\projects\libpurple\libpurple\core.c 79 LibPurple
Error 85 error C2082: redefinition of formal parameter 'purple_core_init' c:\users\admin\documents\visual studio 2008\projects\libpurple\libpurple\core.c 80 LibPurple
Error 86 error C2143: syntax error : missing ';' before '{' c:\users\admin\documents\visual studio 2008\projects\libpurple\libpurple\core.c 80 LibPurple
Error 87 error C2065: 'VERSION' : undeclared identifier c:\users\admin\documents\visual studio 2008\projects\libpurple\libpurple\core.c 288 LibPurple

Please give me some advice.

nattsurf123 4Feb2010 22:08

Visual Studio 6.0 c++ libpurple compile
 
I read some more about STATIC_PROTO_INIT here:
pidgin.im\pipermail\devel\2007-August\002624.html

When I checked my own project files for STATIC_PROTO_INIT I could find only one line:
Code:

/* Loads static protocol plugin module initialization functions. */
#undef STATIC_PROTO_INIT

So did I include the right config.h....
When I checked the original package after STATIC_PROTO_INIT
I found the real definition in:
config.h.mingw
I was using the config.h.in before. Don't know why they change the name to .in. Crazy :)
So when I compiled the project I got exactly the same error. Weird. I then moved the definition:
Code:

#ifndef STATIC_PROTO_INIT
#define STATIC_PROTO_INIT static void static_proto_init(void) {  }
#endif

directly to core.c and I could actually compile a bit longer until I hit this error:
error C2065: 'VERSION' : undeclared identifier
I could find a define of VERSION in guess!! config.h.... It is like visual studio still thinks that the old config.h is there. I have deleted config.h. I even removed config.h from the project and reincluded it again just in case there where some caching system.
What can I do? Please help.

nattsurf123 9Feb2010 22:18

Re: Visual Studio 6.0 c++ libpurple compile
 
Please help! Anyone?


All times are GMT +5.5. The time now is 12:38.