X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS,TW_HD,TW_LC,TW_LG X-Spam-Check-By: sourceware.org To: cygwin AT cygwin DOT com From: Philipp Kraus Subject: Re: linker error libcygwin Date: Sun, 13 Nov 2011 12:43:37 +0100 Lines: 76 Message-ID: References: <8DB56F04-18E5-43C3-8080-05565BA1531D AT flashpixx DOT de> <4EBC3E14 DOT 9060000 AT sbcglobal DOT net> <4EBC730C DOT 4070701 AT sbcglobal DOT net> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 8bit User-Agent: Unison/2.1.5 X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On 2011-11-11 01:57:48 +0100, Greg Chicares said: > On 2011-11-10 21:22Z, Philipp Kraus wrote: >> On 2011-11-10 22:11:48 +0100, Greg Chicares said: >> >>> On 2011-11-10 20:39Z, Kraus Philipp wrote: >>>> >>>> undefined reference to `_WinMain AT 16' >>>> collect2: ld returned 1 exit status >>> >>> Does this thread >>> http://cygwin.com/ml/cygwin/2011-10/threads.html#00440 >>> contain the answer? >> >> no, sorry. >> >>> If this is a console application, does it have >>> an implementation of main()? >> >> yes the signature of the main is in this example: >> int main(int argc, char* argv[]) > > Please show the full linker command, and indicate the name of > the object file that contains main(). The full linker command shows (I split the flags for a better reading): g++ -o build/target.exe -mconsole -enable-stdcall-fixup -mthread examples/other/target.o -L/usr/local/bin -L/usr/bin -L/cygdrive/c/Windows/system32 -L/cygdrive/c/Windows -L/cygdrive/c/Windows/system32/Wbem -L/cygdrive/c/Windows/system32/WindowsPowerShell/v1.0 "-L/cygdrive/c/Program Files/TortoiseSVN/bin" "-L/cygdrive/c/Program Files/Java/jdk1.6.0_29/bin" -L/cygdrive/c/opt/scons/bin -L/cygdrive/c/opt/library/atlas/3.9.51/lib -L/cygdrive/c/opt/library/boost/1.47.0/bin -L/cygdrive/c/opt/library/boost/1.47.0/lib -L/cygdrive/c/opt/library/cln/1.3.2/lib -L/cygdrive/c/opt/library/ginac/1.6.1/lib -L/cygdrive/c/opt/library/hdf/5-1.8.7/lib -L/cygdrive/c/opt/library/xml2/2.7.8/bin -L/cygdrive/c/opt/library/xml2/2.7.8/lib -L/cygdrive/c/opt/library/jsoncpp/0.5.0/lib -lboost_system -lboost_thread -lboost_iostreams -lboost_regex -lboost_program_options -lboost_exception -lboost_filesystem -llapack -lcblas -lf77blas -latlas -lgfortran -lhdf5_cpp -lhdf5 I have tested the same call with another example (only the *.cpp / *.o file changes) and it works. The difference is the cpp code, but a compiler call run's without an error. I don't understand why different sources with the same linker command creates different results. The linking process should be deterministic, so the compiled object code creates the same linker calls. Thanks Phil -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple