Closed zvezdochiot closed 1 year ago
Насколько я помню, если использовать gcc при линковке, там надо вручную перечислять все библиотеки, а ты только m добавил
Hi @plzombie .
Так ты же пользуешь djvulibre
как внешние тулзы (и правильно делаешь) в разновидностях system()
. А с libgomp
сам чорт ногу сломит: под Mac оно эмулируется через какие то специфичные definition
, в лине всё прикручивается через -fopenmp
, а в винде проще архив обектников (стат. либу) подложить непосредственно, к тому же там их несколько. Так что хз какой именно рецепт здесь будет самым путёвым. Я пошёл по простому, топорному пути. Как то так.
Можно конечно сделать:
LDFLAGS = -lm -lgomp
В лине полёт нормальный, но как в винде - хз. В Mac точно нет.
Обычно тупо g++ используют чтобы не перечислять руками glib (или как там её)
@plzombie say:
Обычно тупо g++ используют
Так я и говору, что хз какой рецепт менее плохой. В лине и то и то идентично.
Нашёл в закромах такой вот рецепт:
OS := $(shell uname)
...
# multithreading options
ifeq ($(OS),Darwin)
MTOPTS := -Xpreprocessor -fopenmp
else
MTOPTS := -fopenmp
endif
# path to save "libgomp.a"
LIBMINIOMP :=
ifeq ($(OS),Darwin)
LDFLAGS := -Wl,-dead_strip
ifeq ($(LIBMINIOMP),)
LDFLAGS += -lomp
endif
else
LDFLAGS := -Wl,--gc-sections -s
endif
Источник: https://github.com/ilyakurdyukov/jpeg-quantsmooth
PS: -lomp
в лине не алё.
Hi @plzombie .
UNIX_MAKEFILE:
-fopenmp
,gcc
only, notg++
.See https://github.com/plzombie/depress/commit/0a9c7a3366be8496c74895bb65aef0b78254e76a