Как импортировать модуль c ++ из другой библиотеки? - PullRequest
1 голос
/ 01 февраля 2020

У меня есть проект c ++ под названием core, который успешно компилируется и создает файл dll и lib при компиляции на Windows. Теперь мне нужно импортировать функциональность из core в другой проект под названием main. core имеет файл с именем core.module.ifc:

export module core
export import :mod
export import :egx
export import :utils

В моем проекте main у меня есть один demo.cpp, который выглядит следующим образом:

#include "someOtherLib.h"

import std.core // error occurs here
import core
.....
some other code

Однако, main не компилируется с ошибкой:

1>C:\Users\main\Desktop\Projects\demo\src\demo.cpp(8,11): error C2230: could not find module 'core'

Я использую VS 16 2019 для компиляции с std::c++latest и инструментарием платформы v142. Файл core.lib правильно указан в качестве входных данных для компоновщика в свойствах проекта. Из того, что я понимаю, компилятор не может знать, что ядро ​​является внешней библиотекой и ищет export module core в демонстрационном проекте (который, очевидно, не работает) и требует файла, который имеет все объявления библиотеки core. Я прав в этом предположении? Если да, то как будет выглядеть этот файл?

Итак, я считаю, что краткое изложение моего вопроса будет так: как импортировать модуль, который экспортируется из библиотеки, в мой проект?

...