Компиляция CUDA-кода в статическую библиотеку (.a) в Linux

dict2 = dict1 не копирует словарь. Это просто дает программисту второй способ (dict2) ссылаться на тот же словарь.

1
задан Nicolaj Rasmussen 5 March 2019 в 15:41
поделиться

1 ответ

Оказывается, проблема была не в компиляции статической библиотеки, а в компоновке указанной библиотеки.

Проблема была исправлена ​​для меня путем изменения:

# Link executable
$(EXEC): $(OBJS)
    $(CC) $^ -o $(OUTDIR)$@ $(LDFLAGS) $(LIB)

На:

# Link executable
$(EXEC): $(OBJS)
    $(CC) $^ -o $(OUTDIR)$@ $(LIB) $(LDFLAGS)

Так, что статическая библиотека, которая является просто набором объектов, связана с другие объекты, прежде чем ссылаться на библиотеки CUDA в $ (LDFLAGS).

Примечание также для всех, кто споткнется об этом в будущем; похоже, это немного зависит от версии вашего компилятора, независимо от того, вызывает ли это ошибку на самом деле.

0
ответ дан Nicolaj Rasmussen 5 March 2019 в 15:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: