From: Ian L. <dr...@gm...> - 2006-08-08 20:16:35
|
Hello all, I'm trying to access a windows.h function with mingw. My test program compiles fine, but then complains about an undefined reference during linking. Here's the test program: #include <windows.h> int main(){ CreateHardLink("C:\\iantest.txt", "C:\\msys\\1.0\\home\\Ian\\ian.txt", 0x0); return 0; } And I'm compiling with: gcc test.c (and I also tried "gcc test.c -lkernel32") Which gives me this error: C:/DOCUME~1/IANLAR~1/LOCALS~1/Temp/ccoFaaaa.o(.text+0x42):test.c: undefined reference to `CreateHardLink' collect2: ld returned 1 exit status Looking in the kernel32.dll with objdump, there definitely seem to be symbols for CreateHardLink. What gives? Thanks in advance for the help, Ian Larsen |
From: Luke D. <cod...@ho...> - 2006-08-09 12:12:34
|
----- Original Message ----- From: "Ian Larsen" <dr...@gm...> To: <min...@li...> Sent: Wednesday, August 09, 2006 4:16 AM Subject: [Mingw-users] Linking Help > Hello all, > > I'm trying to access a windows.h function with mingw. My test program > compiles fine, but then complains about an undefined reference during > linking. Here's the test program: > > #include <windows.h> > > int main(){ > CreateHardLink("C:\\iantest.txt", > "C:\\msys\\1.0\\home\\Ian\\ian.txt", 0x0); > > return 0; > } > > And I'm compiling with: > > gcc test.c > > (and I also tried "gcc test.c -lkernel32") > > Which gives me this error: > > C:/DOCUME~1/IANLAR~1/LOCALS~1/Temp/ccoFaaaa.o(.text+0x42):test.c: > undefined reference to `CreateHardLink' > collect2: ld returned 1 exit status > > Looking in the kernel32.dll with objdump, there definitely seem to be > symbols for CreateHardLink. What gives? > > Thanks in advance for the help, > Ian Larsen If you compile with -Wall you'll see: hardlink.c:4: warning: implicit declaration of function `CreateHardLink' If you look in winbase.h you'll see why: #if (_WIN32_WINNT >= 0x0500) WINBASEAPI BOOL WINAPI CreateHardLinkA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES); WINBASEAPI BOOL WINAPI CreateHardLinkW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES); #endif So you need to define _WIN32_WINNT appropriately. Luke |
From: Ian L. <dr...@gm...> - 2006-08-09 16:52:47
|
Thanks so much, that fixed it! -Ian On 8/9/06, Luke Dunstan <cod...@ho...> wrote: > > ----- Original Message ----- > From: "Ian Larsen" <dr...@gm...> > To: <min...@li...> > Sent: Wednesday, August 09, 2006 4:16 AM > Subject: [Mingw-users] Linking Help > > > > Hello all, > > > > I'm trying to access a windows.h function with mingw. My test program > > compiles fine, but then complains about an undefined reference during > > linking. Here's the test program: > > > > #include <windows.h> > > > > int main(){ > > CreateHardLink("C:\\iantest.txt", > > "C:\\msys\\1.0\\home\\Ian\\ian.txt", 0x0); > > > > return 0; > > } > > > > And I'm compiling with: > > > > gcc test.c > > > > (and I also tried "gcc test.c -lkernel32") > > > > Which gives me this error: > > > > C:/DOCUME~1/IANLAR~1/LOCALS~1/Temp/ccoFaaaa.o(.text+0x42):test.c: > > undefined reference to `CreateHardLink' > > collect2: ld returned 1 exit status > > > > Looking in the kernel32.dll with objdump, there definitely seem to be > > symbols for CreateHardLink. What gives? > > > > Thanks in advance for the help, > > Ian Larsen > > If you compile with -Wall you'll see: > > hardlink.c:4: warning: implicit declaration of function `CreateHardLink' > > If you look in winbase.h you'll see why: > > #if (_WIN32_WINNT >= 0x0500) > WINBASEAPI BOOL WINAPI CreateHardLinkA(LPCSTR,LPCSTR,LPSECURITY_ATTRIBUTES); > WINBASEAPI BOOL WINAPI > CreateHardLinkW(LPCWSTR,LPCWSTR,LPSECURITY_ATTRIBUTES); > #endif > > So you need to define _WIN32_WINNT appropriately. > > Luke > > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > MinGW-users mailing list > Min...@li... > > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users > |