+- +-
Say hello if visiting :) by Gecko
11 Jan 2023, 07:43:05 pm

Seti is down again by Mike
09 Aug 2017, 10:02:44 am

Some considerations regarding OpenCL MultiBeam app tuning from algorithm view by Raistmer
11 Dec 2016, 06:30:56 am

Loading APU to the limit: performance considerations by Mike
05 Nov 2016, 06:49:26 am

Better sleep on Windows - new round by Raistmer
26 Aug 2016, 02:02:31 pm

Author Topic: Visual Studio linker problem  (Read 8966 times)

Adrenalin2

  • Guest
Visual Studio linker problem
« on: 23 Oct 2006, 02:20:19 pm »
I have been trying to compile the seti@home client for three days now without success. I am using Visual Studio 2005 to compile it, but after excluding the seti_boinc_private.rc file I have a linker error at the end of the process:
Error   1   error LNK2001: unresolved external symbol _boinc_app_mouse_button   libboincapi.lib   
Error   2   error LNK2001: unresolved external symbol _boinc_app_mouse_move           libboincapi.lib   
Error   3   fatal error LNK1120: 2 unresolved externals   c:\.....\setiathome_5.17_quantum.exe

These symbols are defined as external functions inside the libboincapi.c. Where are they usually implemented?
Unfortunately the .manifest file is only built by the debug configuration and not by the release config. Is this file necessary for the build process? Can someone help me resolving this errors?

Offline Simon

  • Ni!
  • Knight who says 'Ni!'
  • *****
  • Posts: 1045
    • Is it a bird? Is it a plane? No...its-the.net!
Re: Visual Studio linker problem
« Reply #1 on: 23 Oct 2006, 03:57:58 pm »
Adrenalin,

the Manifest problem can be easily resolved by creating an empty file called xyz.Manifest (you choose the name, but the extension has to be .Manifest), then enter the name of that file in seti_boinc_private.rc.

This is a VS 2005 problem only, and it's annoying but pretty easy to fix.

About the other, that's an error in S@H code I sent to Eric Korpela a while ago, he said it should be fixed. Eric, did that ever make it into the S@H tree?

Inside sah_gfx.cpp, find boinc_app_mouse_move and boinc_app_mouse_button. They will have a definition like the following:
Quote from:
void boinc_app_mouse_move( int x, int y, int left, int middle, int right )
[...]
void boinc_app_mouse_button( int x, int y, int which, int is_down )
Quote from:
void boinc_app_mouse_move( int x, int y, bool left, bool middle, bool right )
[...]
void boinc_app_mouse_button( int x, int y, int which, bool is_down )
I've highlighted the incorrect parts in red and the corrected parts in green. S@H should now compile. Took me forever initially to spot that...

HTH,
Good luck compiling!
Simon.
« Last Edit: 23 Oct 2006, 06:11:20 pm by Simon »

Adrenalin2

  • Guest
Re: Visual Studio linker problem
« Reply #2 on: 23 Oct 2006, 05:53:59 pm »
Thank you, Simon. It took me the whole day to find that error.  ;)
Now everything compiles fine. Maybe you will see a new client working on a system which is one magnitude faster than current hardware within the next weeks. Seems to be quite complicated and needs huge modifications, but I will post here when/if its done.  ;D
« Last Edit: 23 Oct 2006, 05:58:11 pm by Adrenalin2 »

Offline Simon

  • Ni!
  • Knight who says 'Ni!'
  • *****
  • Posts: 1045
    • Is it a bird? Is it a plane? No...its-the.net!
Re: Visual Studio linker problem
« Reply #3 on: 23 Oct 2006, 06:11:56 pm »
Great :)
Good luck and let us know how it goes.

Regards,
Simon.

Offline Urs Echternacht

  • Volunteer Developer
  • Knight who says 'Ni!'
  • *****
  • Posts: 4121
  • ++
Re: Visual Studio linker problem
« Reply #4 on: 27 Oct 2006, 04:53:09 pm »
Adrenalin,

the Manifest problem can be easily resolved by creating an empty file called xyz.Manifest (you choose the name, but the extension has to be .Manifest), then enter the name of that file in seti_boinc_private.rc.

This is a VS 2005 problem only, and it's annoying but pretty easy to fix.
O.K.
Quote
About the other, that's an error in S@H code I sent to Eric Korpela a while ago, he said it should be fixed. Eric, did that ever make it into the S@H tree?

Inside sah_gfx.cpp, find boinc_app_mouse_move and boinc_app_mouse_button. They will have a definition like the following:
Quote from:
void boinc_app_mouse_move( int x, int y, int left, int middle, int right )
[...]
void boinc_app_mouse_button( int x, int y, int which, int is_down )
Quote from:
void boinc_app_mouse_move( int x, int y, bool left, bool middle, bool right )
[...]
void boinc_app_mouse_button( int x, int y, int which, bool is_down )
I've highlighted the incorrect parts in red and the corrected parts in green. S@H should now compile. Took me forever initially to spot that...

HTH,
Good luck compiling!
Simon.
Simon,
i don't believe this should be a problem within C/C++ because the type "bool" is usually mapped onto the type "int" (synonymous use). Till today the seti@home code (5.17 at CVS) has not been changed at that functions. When compiling seti@home applications successfully a few weeks ago, i did not see these errors. So i have to ask me now, what did i do different to compile successful?

Urs
_\|/_
U r s

Offline Simon

  • Ni!
  • Knight who says 'Ni!'
  • *****
  • Posts: 1045
    • Is it a bird? Is it a plane? No...its-the.net!
Re: Visual Studio linker problem
« Reply #5 on: 27 Oct 2006, 08:30:55 pm »
Pretty easy to answer, Urs,

depending on what BOINC version you're using to link, you either get undefined symbol errors when linking or you do not.

The real problem is that the definitions differ in the boinc and seti_boinc source trees. The fix I proposed works with the source tree that is online on this site.

'Nuff said ;D
Simon.

 

Welcome, Guest.
Please login or register.
 
 
 
Forgot your password?
Members
Total Members: 97
Latest: ToeBee
New This Month: 0
New This Week: 0
New Today: 0
Stats
Total Posts: 59559
Total Topics: 1672
Most Online Today: 257
Most Online Ever: 983
(20 Jan 2020, 03:17:55 pm)
Users Online
Members: 0
Guests: 252
Total: 252
Powered by EzPortal