dict2 = dict1
не копирует словарь. Это просто дает программисту второй способ (dict2
) ссылаться на тот же словарь.
Оказывается, проблема была не в компиляции статической библиотеки, а в компоновке указанной библиотеки.
Проблема была исправлена для меня путем изменения:
# Link executable
$(EXEC): $(OBJS)
$(CC) $^ -o $(OUTDIR)$@ $(LDFLAGS) $(LIB)
На:
# Link executable
$(EXEC): $(OBJS)
$(CC) $^ -o $(OUTDIR)$@ $(LIB) $(LDFLAGS)
Так, что статическая библиотека, которая является просто набором объектов, связана с другие объекты, прежде чем ссылаться на библиотеки CUDA в $ (LDFLAGS).
Примечание также для всех, кто споткнется об этом в будущем; похоже, это немного зависит от версии вашего компилятора, независимо от того, вызывает ли это ошибку на самом деле.