On Linux, if I run a program compiled with 'gcc' without the proper shared 
libraries in path I get the following error message:

> error while loading shared libraries: libxxx.so: cannot open shared object 
> file: No such file or directory

This is expected.

The same happens when running a program compiled with Cygwin on Windows, either 
using 'gcc' or 'x86_64-w64-mingw32-gcc', but only if I run the program within 
the Cygwin Terminal.

If I run the program within the Windows Command Prompt, I do not get any error 
messages (the program simply does not do anything).

Below are the instructions to reproduce the issue.


File 'foo.h':

#ifndef foo_h__
#define foo_h__
extern void foo(void);
#endif  // foo_h__


File 'foo.c':

#include <stdio.h>
void foo(void)
{
    puts("Hello, I'm a shared library");
}


File 'main.c':

#include <stdio.h>
#include "foo.h"
int main(void)
{
    puts("This is a shared library test...");
    foo();
    return 0;
}


Build object file 'foo.o':
x86_64-w64-mingw32-gcc -c foo.c

Build shared library 'libfoo.dll':
x86_64-w64-mingw32-gcc -shared -o libfoo.dll foo.o

Build executable 'foo.exe':
x86_64-w64-mingw32-gcc -o foo.exe main.c libfoo.dll

Rename shared library 'libfoo.dll':
mv libfoo.dll liberror.dll

If you run 'foo.exe' within the Cygwin Terminal you get the error message, if 
you run it within the Windows Command Prompt you do not get any messages 
printed out.
--
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

Reply via email to