Problem linking in pthread librarry.... (Newbie)

Ed Hume hume@hume.com
Thu Jan 8 14:34:00 GMT 2004


I believe the __imp__ prefix comes from the functions being declared
as DLL imported/exported symbols.  So I think you need to go review
the header files, and fix up some macros in your makefile so that the
__declspec(dllexport) macros are not used.  (For example, have your
definition of PTW_EXTERN)

Srdjan wrote:

>Hi,
>
>After reading all the readme's and FAQs I still have a bit of a problem
>linking with pthread for win32. Somebody might have already solved it...
>
>Here is the problem....
>
>I am porting a small daemon program from linux to win32 (... yes, I
>know...). Anyway, becasue this little beast is supposed to be used on
>systems that I am unable to install the pthread.dll, I am trying to build a
>static pthread library and link it in with my code.
>
>I have fudged building process using VC7.1 (.NET) so it does build a .lib
>file, however, when I try linking with my code, I get the following link
>problems:
>
>============================================================================
>=============
>fdca.obj : error LNK2019: unresolved external symbol __imp__pthread_join
>referenced in function _main
>fdca.obj : error LNK2019: unresolved external symbol __imp__pthread_create
>referenced in function _main
>fdca_schedule.obj : error LNK2001: unresolved external symbol
>__imp__pthread_create
>fdca_collect.obj : error LNK2019: unresolved external symbol
>__imp__pthread_exit referenced in function _fdca_collect
>fdca_command.obj : error LNK2019: unresolved external symbol
>__imp__pthread_exit referenced in function _fdca_command
>fdca_schedule.obj : error LNK2001: unresolved external symbol
>__imp__pthread_exit
>ds.lib(ds.obj) : error LNK2019: unresolved external symbol
>__imp__pthread_mutex_init referenced in function _ds_list_init
>ds.lib(ds.obj) : error LNK2019: unresolved external symbol
>__imp__pthread_mutex_unlock referenced in function _ds_list_insert
>ds.lib(ds.obj) : error LNK2019: unresolved external symbol
>__imp__pthread_mutex_lock referenced in function _ds_list_insert
>.\/winagent.exe : fatal error LNK1120: 7 unresolved externals
>============================================================================
>=============
>
>Now, I am sure I have stuffed up something, but I can't figure out what
>(obvious conclusion :-). My code seems to generate '__imp__function_name'
>instead of '_function_name'. I have a number of other external static
>libraries I am linking with, but they all seem to be linking in happily.
>
>The Makefile with nmake builds only a DLL version, and I am trying at the
>moment to get it to build a static lib too, but with not much success.
>
>I would be ethernally grateful if somebody was able to quickly identify what
>I am doing wrong.
>
>Cheers,
>
>Srdjan
>Melbourne
>
>
>  
>

-- 
Regards,

Ed Hume
Hume Integration Software           http://www.hume.com/




More information about the Pthreads-win32 mailing list