Как использовать fmt с модулем С++ 20 и модулем стандартной библиотеки С++ 23 в cmake?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать fmt с модулем С++ 20 и модулем стандартной библиотеки С++ 23 в cmake?

Сообщение Anonymous »

У меня есть минимальный образец:

Код: Выделить всё

import fmt;
import std;
int main(int argc, char* argv[])
{
auto v = std::vector{1, 2, 3};
fmt::print("{}", fmt::join(v, ", "));
return 0;
}

Код: Выделить всё

cmake_minimum_required(VERSION 3.30 FATAL_ERROR)

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD "0e5b6991-d74f-4b3d-a41c-cf096e0b2508")
set(CMAKE_CXX_MODULE_STD 1)

project(main LANGUAGES CXX)

add_executable(main main.cpp)

include(FetchContent)
FetchContent_Declare(
fmt
GIT_REPOSITORY https://github.com/fmtlib/fmt
GIT_TAG        0c9fce2ffefecfdce794e1859584e25877b7b592) # 11.0.2
FetchContent_MakeAvailable(fmt)
#target_link_libraries(main fmt::fmt)
target_sources(main
PUBLIC FILE_SET CXX_MODULES
FILES
${fmt_SOURCE_DIR}/src/fmt.cc
)
target_include_directories(main PRIVATE ${fmt_SOURCE_DIR}/include)
Но это не сработало и показывает, что соединение не найдено(не перегружено). Поэтому я прошу кого-нибудь помочь, если есть более полезный пример использования fmt с c ++20 в cmake.
Я тоже заметил это:

Код: Выделить всё

import fmt;

int main() {
fmt::print("Hello, modules!\n");
}

Код: Выделить всё

cmake_minimum_required(VERSION 3.11)
project(HELLO CXX)

set(CMAKE_CXX_EXTENSIONS OFF)
add_subdirectory(fmt)
add_executable(hello hello.cc)
target_link_libraries(hello fmt)
он ​​работает только с clang и make. Ниндзя с gcc или msvc, даже clang будет получать различные ошибки... (для трех совершенно разные)
Я не могу найти другие примеры использования fmt в C++20 или C++ 23 стандарт с Гуглом. Пример C++ 20 или C++ 23 полезен для меня и других людей, заинтересованных в нем.

Подробнее здесь: https://stackoverflow.com/questions/791 ... e-in-cmake
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»