Вы можете (возможно) обойти поиск, указав полный путь к архиву библиотеки. Поэтому вместо указания -lncurses
вы можете попробовать ./ramdisk/libs/libncurses.a
(или что-то еще). Вы не указали, была ли это общая библиотека или нет, и я не совсем уверен, что это работает для общих библиотек, но, вероятно, стоит попробовать.
[править]
Поскольку это проблемы с общей библиотекой, может быть что-то вроде:
CC=icc
THR=/full/path/to/wherever/libthr/lives
NCE=/full/path/to/ramdisk/libs
CFLAGS+=-I$(ROOTDIR)/../../include
LDFLAGS=-static
nce: nce.c
$(CC) $(CFLAGS) nce.c $(LDFLAGS) -o nce -L$(THR) -W,-rpath=$(THR) -lthr -L$(NCE) -W,-rpath=$(NCE) -lncurses
Я вроде как стреляю в темноте, поскольку я не знаком с icc, но идея в том, чтобы убедиться, что компоновщик помещает путь своего пути в путь поиска компоновщика во время выполнения перед тем, который находится на ramdisk, чтобы thr был найден там первым.