Cygwin でも自作の Tool が使いたいので、make しようとしたのですが、basename() の link に失敗します。
$ make test
gcc test.c -o test
/tmp/ccyDk98.o(.text+0x2b):test.c: undefined reference to `_basename'
collect2: ld returned 1 exit status
make: *** [test] Error 1
/* test.c */
#include <stdio.h>
int main(int argc, char** argv){
printf("%s\n",basename(argv[0]);
return 0;
}
basename() が未定義だということはわかるのですが、(#include <libgen.h> 自体が失敗する) 代替手段としてどうすればよいのか、何かよい方法がありましたら、アドバイスお願いします。
現状は、
static const char* prgname = "defaultname";
#ifndef __CYGWIN__
{
#include <libgen.h>
progname = basename(argv[0]);
}
#endif
としていますが美しくないです。。。
|