Пожалуйста, обновите ваш вопрос, вместо того, чтобы указывать людям на другие сайты.
Во-первых, вы никогда не должны использовать обратную косую черту в make-файлах, даже на Windows (есть исключения из этого на Windows, но они очень редко). Всегда используйте прямую косую черту в качестве разделителей каталогов.
Во-вторых, вы определяете переменные TBB_INCLUDE_PATH
и TBB_LIBRARY_PATH
, но затем никогда не используете их. Просто упоминание name переменной не использует переменную. Вы должны включить его в $(...)
, чтобы использовать его, как $(TBB_INCLUDE_PATH)
.
Наконец, все общие линкеры являются однопроходными линкерами, что означает порядок , в который вы помещаете Библиотеки и объектные файлы в строке ссылок критически важны. Вы всегда должны помещать объектные файлы first , а библиотеки last . Если у вас есть несколько библиотек, порядок их появления также может быть важен. Ваша строка ссылки должна выглядеть примерно так:
pps: avl.o main.o parPlaneSweep.o
$(CPLUSPLUS) -I$(TBB_INCLUDE_PATH) -L$(TBB_LIBRARY_PATH) $(OPTFLAGS) -o $@ $^ -ltbb
Если вы хотите узнать, что означают $@
и $^
, вы можете прочитать о automati c переменных .