1

I am facing a rather strange problem. I have a 32 bit qmake binary placed at a very deep path. So for ease of use I created a link using

ln -s /complicated/path/to/qmake ~/qmake

I am running a 64 bit machine. So I installed 32 bit libraries. The binary is failing to load when I run

~/qmake

it reports an error saying no such file or directory when the file is there. but runs smoothly when I use 32 bit laoder

/lib/ld-linux.so.2 ~/qmake

The more insteresting thing here is. If I run

/lib/ld-linux.so.2 /complicated/path/to/qmake

it displays an error e.g

qmake: @ɇ�: QRU�4�������̀]ZY�: H: Error 18446744073564424934

but as I have already mentioned the binary gets loaded using the symbolic link

so I have 2 problems here.

  1. Why I have to explicitly mention the loader with the application
  2. Why error with the complete path ... when the symbolic link is running fine ?
Gilles 'SO- stop being evil'
  • 807,993
  • 194
  • 1,674
  • 2,175
  • Just my guess concerning question #2: perhaps it is a problem of the path exceeding max length in Linux? Please do a `grep -e PATH_MAX -e NAME_MAX /usr/include/linux/limits.h` and compare with your "very deep path" length. Not sure if this is the cause -- logically, this should also concern the symlink. – dr_ May 20 '15 at 08:03
  • PATH_MAX is 4096 chars ... The path is not that deep – theadnangondal May 20 '15 at 08:06
  • What about the complicated path itself, are there any special characters ? – Sergiy Kolodyazhnyy May 20 '15 at 08:17
  • @Serg yes there are ... but If that is the case should the symbolic link work or nor ? – theadnangondal May 20 '15 at 08:20
  • Can you provide the output of `ldd ~/qmake`? – chaos May 20 '15 at 08:27
  • @theadnangondal should work. What I've done is I've tried creating a TEST\DIR on my desktop and created symbolic link to it in my home directory. `cd TEST\DIR` took me to another directory TESTDIR, which is OK, backslash is for escapes and since i didnt escape anything there, it's ignored, right ? but `cd TEST\\DIR` worked as it should have, so maybe some of the characters in the path need to be escaped, perhaps – Sergiy Kolodyazhnyy May 20 '15 at 08:29
  • Not an expert on `ln` so I guess that's all I could suggest for now – Sergiy Kolodyazhnyy May 20 '15 at 08:30
  • @Serg thansk 4 ur help ... but I have tried making a new dir with all those special chars in the path. And it worked for me ... don't know why the original is not working – theadnangondal May 20 '15 at 08:35
  • @theadnangondal so you've a new directory without special characters there, right ? My guess just might have been right – Sergiy Kolodyazhnyy May 20 '15 at 08:38
  • @Serg NO. the directory I created HAS special characters and it worked. – theadnangondal May 20 '15 at 09:53
  • @Serg the only special chars are +,- and _ – theadnangondal May 20 '15 at 09:53
  • 1. You need to mention the loader explicitly because the executable contains a different path. See [Getting “Not found” message when running a 32-bit binary on a 64-bit system](http://unix.stackexchange.com/questions/13391/getting-not-found-message-when-running-a-32-bit-binary-on-a-64-bit-system). 2. I don't know. – Gilles 'SO- stop being evil' May 20 '15 at 21:39

0 Answers0