Для общего устранения неполадок в подобных случаях я бы рекомендовал найти, где в системе установлен файл (если ваш файл build.sh действительно установлен). Вы могли бы найти недостающий файл заголовка, используя
find/-path '*/cds/init.h' 2>/dev/null
Затем вам нужно поставить два параметра г ++:
Сначала один получает компилятор знать о включаемых файлах из каталога установки
-I path_to_folder_one_step_above_cds_folder
Второй получает ссылку, чтобы узнать о местонахождении библиотек. Если файл библиотеки называется libcds.so, вы можете найти его, запустив
find/-name libcds.so 2>/dev/null
Так линковании поставить пометка
-L path_to_folder_one_step_above_libcds.so
В вашем случае вы не могли бы нужен флаг -L, так как большая часть вашей библиотеки предположительно является только заголовком.
UPDATE: сценарий build.sh печатает важную информацию вверху, начиная с «Создание со следующими параметрами:». Важными битами будут «Параметры компиляции:» и «Параметры ссылки:». Этого должно быть достаточно, чтобы решить ваш конкретный вариант.
UPDATE2: build.sh также экспортирует некоторые флаги, которые могут содержать больше опций. Вы можете печатать их непосредственно после запуска build.sh, запустив
echo LDFLAGS=$LDFLAGS
echo CFLAGS=$CFLAGS
echo CXXFLAGS=$CXXFLAGS
вы, вероятно, должны пройти все эти варианты г ++ при компиляции и линковки этой библиотеки. LDFLAGS относятся только к компоновщику. Оба других необходимы для компиляции файлов C++.
Есть ли «-L/usr/ib/x86_64-linux-gnu» только опечатка? (Вероятно, вы имели в виду «-L/usr/lib/x86_64-linux-gnu») – optisimon
Спасибо за исправление. –
Вы установили 'libcds' или вы только что создали его? Вы можете проверить, что 'cds/init.h' находится где-то в каталоге'/usr/include'? – alvits