使用GCC的-B
標誌,並在包含ar
要執行該目錄指向它。有關此標誌的更多詳細信息,請參見gcc manual。
gcc-ar -B/path/to/your/dir ...
似乎爲我工作:
$ strace -f -eexecve gcc-ar rc foo.a /dev/null |& grep /ar
[pid 14485] execve("/usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/../../../../x86_64-pc-linux-gnu/bin/ar", [...]) = 0
$ strace -f -eexecve gcc-ar rc foo.a /dev/null -B/usr/bin |& grep /ar
[pid 14493] execve("/usr/bin/ar", [...]) = 0
$ strace -f -eexecve gcc-ar rc foo.a /dev/null -B/usr/x86_64-pc-linux-gnu/binutils-bin/2.26/ |& grep /ar
[pid 14500] execve("/usr/x86_64-pc-linux-gnu/binutils-bin/2.26/ar", [...]) = 0
你應該認識到,在你的構建系統實際上(不要讓它調用默認的gcc-ar)。 –
如何?我調用'/ home/foo/gcc4.9/gcc-ar',但仍然調用'/ usr/bin/ar'。 – Rost
_「如何?我打電話給'/home/foo/gcc4.9/gcc-ar'"_而不是調用'/ home/foo/binutils2.26/ar'。 –