C compilation error

224 views
Skip to first unread message

anders

unread,
Oct 8, 2015, 3:15:19 AM10/8/15
to Eiffel Users
Hi

I am compiling a project with 15.08 and I get this error:

big_file_C1_c.c
C:\EiffelStudio1508GPL\library\cURL\spec\include\curl/curl.h(176) : error C2061: syntax error : identifier 'curl_socket_t'
C:\EiffelStudio1508GPL\library\cURL\spec\include\curl/curl.h(176) : error C2059: syntax error : ';'
C:\EiffelStudio1508GPL\library\cURL\spec\include\curl/curl.h(246) : error C2146: syntax error : missing ')' before identifier 'curlfd'
C:\EiffelStudio1508GPL\library\cURL\spec\include\curl/curl.h(246) : error C2081: 'curl_socket_t' : name in formal parameter list illegal
C:\EiffelStudio1508GPL\library\cURL\spec\include\curl/curl.h(246) : error C2061: syntax error : identifier 'curlfd'
C:\EiffelStudio1508GPL\library\cURL\spec\include\curl/curl.h(246) : error C2059: syntax error : ';'
C:\EiffelStudio1508GPL\library\cURL\spec\include\curl/curl.h(246) : error C2059: syntax error : ','
C:\EiffelStudio1508GPL\library\cURL\spec\include\curl/curl.h(247) : error C2059: syntax error : ')'
c:\eiffelstudio1508gpl\library\curl\spec\include\curl\multi.h(132) : error C2143: syntax error : missing ')' before '*'
c:\eiffelstudio1508gpl\library\curl\spec\include\curl\multi.h(132) : error C2081: 'fd_set' : name in formal parameter list illegal
c:\eiffelstudio1508gpl\library\curl\spec\include\curl\multi.h(132) : error C2143: syntax error : missing '{' before '*'
c:\eiffelstudio1508gpl\library\curl\spec\include\curl\multi.h(133) : error C2143: syntax error : missing ';' before '*'
c:\eiffelstudio1508gpl\library\curl\spec\include\curl\multi.h(134) : error C2143: syntax error : missing ';' before '*'
c:\eiffelstudio1508gpl\library\curl\spec\include\curl\multi.h(135) : error C2059: syntax error : 'type'


Is it that I am using an old compiler or any idea of what the cause could be?

It compiles find at another computer.

Installation information:
Version = EiffelStudio 15 (15.08.9.7862 GPL Edition - win64)
$ISE_EIFFEL = C:\EiffelStudio1508GPL
$ISE_LIBRARY = C:\EiffelStudio1508GPL
$ISE_PLATFORM = win64
$ISE_C_COMPILER = msc



Regards

Anders

Jocelyn Fiat

unread,
Oct 8, 2015, 8:12:19 AM10/8/15
to anders, Eiffel Users
Hi,

It is likely to be an issue between  Eiffel libCurl and Eiffel Net (SSL) on Windows.
I guess you are using libcurl, but are you using also Eiffel Net SSL or Eiffel zeromq wrapper?
We noticed such issue. And no obvious solution.
It is a conflict related to the versions of winsock included in the project.

As part of a solution, the EiffelWeb framework team we have been working on providing a new implementation of the http_client, which is based on EiffelNET (SSL).
It is not yet integrated, but recent tests are encouraging. So this would be a solution to workaround conflict when using libcurl and Net SSL at the same time.
We should be able to provide this new "simple" http_client implementation probably next week (it has a few limitations but should not matter for general usage)

Apart from this workaround, if anyone knows a solution for the winsock conflict between libcurl and openssl for instance, please let us know.

Regards,
-- Jocelyn







--
You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to eiffel-users...@googlegroups.com.
To post to this group, send email to eiffel...@googlegroups.com.
Visit this group at http://groups.google.com/group/eiffel-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/eiffel-users/6acb55ac-a762-4bd5-abd7-14806eceb2a5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

anders

unread,
Oct 8, 2015, 9:57:49 AM10/8/15
to Eiffel Users, and...@bsharp.se


Den torsdag 8 oktober 2015 kl. 14:12:19 UTC+2 skrev jfiat:
Hi,

It is likely to be an issue between  Eiffel libCurl and Eiffel Net (SSL) on Windows.
I guess you are using libcurl, but are you using also Eiffel Net SSL or Eiffel zeromq wrapper?

I am using libcorl and zeromq
 
We noticed such issue. And no obvious solution.
Yes I rememberd it but I forgott about it due to that I was able to build it at another computer with Windows 8.1. I will invetigate if I can find a reason for the difference, e.g. why it builds at my Windows 8.1 computer.
 
It is a conflict related to the versions of winsock included in the project.

As part of a solution, the EiffelWeb framework team we have been working on providing a new implementation of the http_client, which is based on EiffelNET (SSL).
It is not yet integrated, but recent tests are encouraging. So this would be a solution to workaround conflict when using libcurl and Net SSL at the same time.
We should be able to provide this new "simple" http_client implementation probably next week (it has a few limitations but should not matter for general usage)

Ok, I can test it later when available. Not an urgent task for me at the moment.

anders

unread,
Oct 8, 2015, 10:42:54 AM10/8/15
to Eiffel Users, and...@bsharp.se
Hi

I removed zeromq from my build and then tried again but the I got link problems. Do you recognize what could cause this problem. I got about 1300 errors like this. I did a "clean" of EIFGEN before building.

"C:\EiffelStudio1508GPL\studio\spec\win64\lib\msc\mtfinalized.lib" "C:\EiffelStudio1508GPL\library\cURL\spec\msc\win64\lib\mteiffel_curl.lib" "C:\EiffelStudio1508GPL\library\net\spec\msc\win64\lib\mtnet.lib" "C:\EiffelStudio1508GPL\unstable\library\persistency\database\sqlite3\spec\msc\win64\lib\mtesqlite.lib" 
USER32.lib WS2_32.lib ADVAPI32.lib GDI32.lib SHELL32.lib MSIMG32.lib COMDLG32.lib UUID.lib OLE32.lib OLEAUT32.lib COMCTL32.lib MPR.LIB SHLWAPI.LIB WINSPOOL.LIB 
shareimages.res 
E2\Eobj2.lib E1\eparents.obj E1\einit.obj E1\ececil.obj E1\evisib.obj 
E1\enames.obj E1\eskelet.obj E1\eplug.obj E1\esize.obj E1\epoly.obj 
E1\eref.obj C23\Cobj23.lib C22\Cobj22.lib C21\Cobj21.lib C20\Cobj20.lib 
C19\Cobj19.lib C18\Cobj18.lib C17\Cobj17.lib C16\Cobj16.lib C15\Cobj15.lib 
C14\Cobj14.lib C13\Cobj13.lib C12\Cobj12.lib C11\Cobj11.lib C10\Cobj10.lib 
C9\Cobj9.lib C8\Cobj8.lib C7\Cobj7.lib C6\Cobj6.lib C5\Cobj5.lib 
C4\Cobj4.lib C3\Cobj3.lib C2\Cobj2.lib C1\Cobj1.lib 
emain.obj : error LNK2019: unresolved external symbol __imp__FreeEnvironmentStringsW@4 referenced in function _main
LIBCMT.lib(a_env.obj) : error LNK2001: unresolved external symbol __imp__FreeEnvironmentStringsW@4
emain.obj : error LNK2019: unresolved external symbol _reclaim referenced in function _main
emain.obj : error LNK2019: unresolved external symbol _free_argv referenced in function _main
emain.obj : error LNK2019: unresolved external symbol _eif_rtinit referenced in function _main
emain.obj : error LNK2019: unresolved external symbol _failure referenced in function _main
emain.obj : error LNK2019: unresolved external symbol _exset referenced in function _main
emain.obj : error LNK2019: unresolved external symbol _initstk referenced in function _main
emain.obj : error LNK2019: unresolved external symbol _initsig referenced in function _main
Cobj3.lib(big_file_C3_c.obj) : error LNK2019: unresolved external symbol __imp__TlsGetValue@4 referenced in function _F167_2091
Cobj2.lib(big_file_C2_c.obj) : error LNK2001: unresolved external symbol __imp__TlsGetValue@4


Regards

Anders

Den torsdag 8 oktober 2015 kl. 14:12:19 UTC+2 skrev jfiat:

javier hector

unread,
Oct 8, 2015, 4:32:26 PM10/8/15
to Eiffel Users
Hi Anders, 

Can you verify the Microsoft C++ compiler are you using?

From command line type cl.

/Javier

Emmanuel Stapf

unread,
Oct 9, 2015, 9:09:06 AM10/9/15
to anders, Eiffel Users

I think the issue is that some part of the C code was compiled with a 32-bit C compiler whereas you are using the 64-bit version of EiffelStudio.

 

I would delete the .obj and .lib files where you have the error and relaunch the C compilation from EiffelStudio.

 

Regards,

Manu

 

anders

unread,
Oct 9, 2015, 9:48:41 AM10/9/15
to Eiffel Users, and...@bsharp.se, ma...@eiffel.com
Hi

I should probably use a 32 bit version of Eiffel Studio at that computer since it is Windows Vista running at it and I can not install the community edition of MS VS 2012 at that, e.g. I get a message that says that it is not supporting that operating systems. I have been using VS version 10.0 so far with older version of Eiffel Studio.

Anders

anders

unread,
Oct 9, 2015, 9:53:41 AM10/9/15
to Eiffel Users
Hi I have this C-compilers


EiffelStudio is ready to be used for the win64 platform and msc C compiler.

C:\EiffelStudio1508GPL>espawn -l
Eiffel Environment Command Spawn Utility - Version: 15.08
Copyright Eiffel Software 1985-2011. All Rights Reserved.

Available C/C++ compilers:

   WSDK71:  Microsoft Windows SDK 7.1 (Windows 7)
   VC100 :  Microsoft Visual Studio 2010 VC++ (10.0)

C:\EiffelStudio1508GPL>
Reply all
Reply to author
Forward
0 new messages