Author Topic: Compiling Linux Compatible Code under Windows using Cygwin  (Read 9622 times)

elektronaut

  • Guest
Compiling Linux Compatible Code under Windows using Cygwin
« on: November 05, 2005, 08:44:21 pm »
Hello there...

I just installed Code::Blocks and was surprised by how good it looks and feels. I really want to use it...but: I have this project going which uses sockets and all sorta stuff, i downloaded and installed cygwin...i'm not sure i did everything that needed doing but it looked good.

I could compile the example that came when you create a new console-application using mingw...but as soon as i switched to the cygwin environment (setting it up as the gcc compiler it seems to run into some trouble with the libraries/header files I dunno really what.
Code
#include <iostream>

int main()
{
std::cout << "Hello world!" << std::endl;
return 0;
}

is what i'm trying to compile.

C:\Programme\cygwin

is where i setup cygwin and set the:

c-compiler: gcc.exe
c++ compiler: g++.exe
linker: g++.exe
...

everything lookin good...i can compile this though, so i guess the settings must be okay:
Code
int main()
{
return 0;
}

the build-message i get complains about something within \user\include\pthread.h (why does it even need that one??? is it used within iostream?)

when i compile the "Hello World" one within the cygwin-bash it works like a charm...am I missing something? thanks for any help!!! I am really just beginning to write c++...so please be gentle;)

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4315
    • Code::Blocks IDE
Re: Compiling Linux Compatible Code under Windows using Cygwin
« Reply #1 on: November 05, 2005, 11:54:06 pm »
Please post your full build log. To enable full logging, go to "Settings->Compiler->Other->Logging".
Anyway, someone mentioned that cygwin requires "/" as path separator but currently the platform default is used (which is "\" under windows) so it probably failed because of this. Can't be sure though without the build log.
Be patient!
This bug will be fixed soon...

elektronaut

  • Guest
Re: Compiling Linux Compatible Code under Windows using Cygwin
« Reply #2 on: November 06, 2005, 11:49:51 am »
I'm sorry, should have thought of that!...I think i even fixed something, at least...the include path was still pointing to the CodeBlocks include directory...now what seems to fail is the linking?

Project   : Console application
Compiler  : GNU GCC Compiler (called directly)
Directory : C:\Dokumente und Einstellungen\myUser\Eigene Dateien\code\c++ projects\sockettest\
--------------------------------------------------------------------------------
Switching to target: default
g++.exe       -IC:\Programme\cygwin\include -c main.cpp -o .objs\main.o
g++.exe    -LC:\Programme\CodeBlocks\lib -o "C:\Dokumente und Einstellungen\myUser\Eigene Dateien\code\c++ projects\sockettest\console.exe" .objs\main.o       
C:\Programme\CodeBlocks\lib/libstdc++.a(globals_io.o)(.text+0xe):globals_io.cc: undefined reference to `___gthr_win32_mutex_init_function'
C:\Programme\CodeBlocks\lib/libstdc++.a(globals_io.o)(.text+0x2f):globals_io.cc: undefined reference to `___gthr_win32_mutex_init_function'
C:\Programme\CodeBlocks\lib/libstdc++.a(ios_init.o)(.text+0x21f):ios_init.cc: undefined reference to `__imp___iob'
C:\Programme\CodeBlocks\lib/libstdc++.a(ios_init.o)(.text+0x282):ios_init.cc: undefined reference to `__imp___iob'
C:\Programme\CodeBlocks\lib/libstdc++.a(ios_init.o)(.text+0x2e9):ios_init.cc: undefined reference to `__imp___iob'
C:\Programme\CodeBlocks\lib/libstdc++.a(ios_init.o)(.text+0x74c):ios_init.cc: undefined reference to `__imp___iob'
C:\Programme\CodeBlocks\lib/libstdc++.a(ios_init.o)(.text+0x789):ios_init.cc: undefined reference to `__imp___iob'
C:\Programme\CodeBlocks\lib/libstdc++.a(ios_init.o)(.text+0x7bb):ios_init.cc: more undefined references to `__imp___iob' follow
C:\Programme\CodeBlocks\lib/libstdc++.a(misc-inst.o)(.text$_ZN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode[__gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::seekoff(long long, std::_Ios_Seekdir, std::_Ios_Openmode)]+0x54):misc-inst.cc: undefined reference to `_fseeko64'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0x908):locale_init.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0x934):locale_init.cc: undefined reference to `___gthr_win32_once'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0x9bc):locale_init.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0x9cc):locale_init.cc: undefined reference to `___gthr_win32_mutex_lock'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0x9ef):locale_init.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0xa0f):locale_init.cc: undefined reference to `___gthr_win32_mutex_unlock'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0xa8c):locale_init.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0xabd):locale_init.cc: undefined reference to `___gthr_win32_mutex_unlock'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0xb4c):locale_init.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0xb5c):locale_init.cc: undefined reference to `___gthr_win32_mutex_lock'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0xb89):locale_init.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0xb9f):locale_init.cc: undefined reference to `___gthr_win32_mutex_unlock'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0xc1c):locale_init.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0xc4d):locale_init.cc: undefined reference to `___gthr_win32_mutex_unlock'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0x158a):locale_init.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0x1645):locale_init.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0x165f):locale_init.cc: undefined reference to `___gthr_win32_mutex_unlock'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0x16fb):locale_init.cc: undefined reference to `___gthr_win32_mutex_lock'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0x1748):locale_init.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0x176f):locale_init.cc: undefined reference to `___gthr_win32_mutex_unlock'
C:\Programme\CodeBlocks\lib/libstdc++.a(locale_init.o)(.text+0x18ce):locale_init.cc: undefined reference to `___gthr_win32_mutex_init_function'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_alloc.o)(.text+0xe):eh_alloc.cc: undefined reference to `___gthr_win32_mutex_init_function'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_alloc.o)(.text+0xb1):eh_alloc.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_alloc.o)(.text+0xde):eh_alloc.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_alloc.o)(.text+0x138):eh_alloc.cc: undefined reference to `___gthr_win32_once'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_alloc.o)(.text+0x13e):eh_alloc.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_alloc.o)(.text+0x159):eh_alloc.cc: undefined reference to `___gthr_win32_mutex_lock'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_alloc.o)(.text+0x171):eh_alloc.cc: undefined reference to `___gthr_win32_mutex_unlock'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_alloc.o)(.text+0x205):eh_alloc.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_alloc.o)(.text+0x21f):eh_alloc.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_alloc.o)(.text+0x236):eh_alloc.cc: undefined reference to `___gthr_win32_mutex_unlock'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_alloc.o)(.text+0x272):eh_alloc.cc: undefined reference to `___gthr_win32_mutex_lock'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_globals.o)(.text+0x57):eh_globals.cc: undefined reference to `___gthr_win32_key_create'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_globals.o)(.text+0xe4):eh_globals.cc: undefined reference to `___gthr_win32_getspecific'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_globals.o)(.text+0x18a):eh_globals.cc: undefined reference to `___gthr_win32_getspecific'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_globals.o)(.text+0x1e2):eh_globals.cc: undefined reference to `__CRT_MT'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_globals.o)(.text+0x244):eh_globals.cc: undefined reference to `___gthr_win32_once'
C:\Programme\CodeBlocks\lib/libstdc++.a(eh_globals.o)(.text+0x26a):eh_globals.cc: undefined reference to `___gthr_win32_setspecific'
C:\Programme\CodeBlocks\lib/libstdc++.a(ctype.o)(.text+0x22):ctype.cc: undefined reference to `__imp___ctype'
C:\Programme\CodeBlocks\lib/libstdc++.a(basic_file.o)(.text+0xa4):basic_file.cc: undefined reference to `__errno'
C:\Programme\CodeBlocks\lib/libstdc++.a(basic_file.o)(.text+0x2a1):basic_file.cc: undefined reference to `__errno'
C:\Programme\CodeBlocks\lib/libstdc++.a(basic_file.o)(.text+0x2c1):basic_file.cc: undefined reference to `__errno'
C:\Programme\CodeBlocks\lib/libstdc++.a(basic_file.o)(.text+0x333):basic_file.cc: undefined reference to `__errno'
C:\Programme\CodeBlocks\lib/libstdc++.a(basic_file.o)(.text+0x468):basic_file.cc: undefined reference to `__errno'
C:\Programme\CodeBlocks\lib/libstdc++.a(basic_file.o)(.text+0x48d):basic_file.cc: more undefined references to `__errno' follow
C:\Programme\CodeBlocks\lib/libstdc++.a(basic_file.o)(.text+0x4ed):basic_file.cc: undefined reference to `__fstati64'
C:\Programme\CodeBlocks\lib/libstdc++.a(basic_file.o)(.text+0x52e):basic_file.cc: undefined reference to `__lseeki64'
C:\Programme\CodeBlocks\lib/libstdc++.a(basic_file.o)(.text+0x416):basic_file.cc: undefined reference to `__lseeki64'
C:\Programme\CodeBlocks\lib/libstdc++.a(c++locale.o)(.text+0x56):c++locale.cc: undefined reference to `__errno'
C:\Programme\CodeBlocks\lib/libstdc++.a(c++locale.o)(.text+0x81):c++locale.cc: undefined reference to `__errno'
C:\Programme\CodeBlocks\lib/libstdc++.a(c++locale.o)(.text+0x119):c++locale.cc: undefined reference to `__errno'
C:\Programme\CodeBlocks\lib/libstdc++.a(c++locale.o)(.text+0x13b):c++locale.cc: undefined reference to `__errno'
C:\Programme\CodeBlocks\lib/libstdc++.a(c++locale.o)(.text+0x1da):c++locale.cc: undefined reference to `__errno'
C:\Programme\CodeBlocks\lib/libstdc++.a(c++locale.o)(.text+0x1f2):c++locale.cc: undefined reference to `_strtold'
C:\Programme\CodeBlocks\lib/libstdc++.a(c++locale.o)(.text+0x20b):c++locale.cc: undefined reference to `__errno'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 2 seconds)

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
Re: Compiling Linux Compatible Code under Windows using Cygwin
« Reply #3 on: November 06, 2005, 01:29:32 pm »
g++.exe    -LC:\Programme\CodeBlocks\lib -o "C:\Dokumente und Einstellungen\myUser\Eigene Dateien\code\c++
Do you see this? You are linking to the CodeBlocks (thus, MinGW) libraries. You need to change the linker path to point to Cygwin as well!

Morten.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

elektronaut

  • Guest
Re: Compiling Linux Compatible Code under Windows using Cygwin
« Reply #4 on: November 06, 2005, 01:50:29 pm »
Awwwe!!!;) I didn't even see it! Thanks for pointing it out!;) it now works like a charm!