clang — Невозможно использовать библиотеку C ++ `std :: filesystem` со сборкой Meson

Я пытаюсь создать фрагмент кода C ++, который использует новую библиотеку C ++ 17 Filesystem, используя систему сборки Meson.

Это кусок meson.build файл задействован:

if not compiler.has_header('filesystem')   # This is OK
warning('The compiler has no <filesystem> header file')
endif

filesystem_dep = dependency('libc++fs', modules : ['filesystem'])

test_exe = executable('test', test_src,
include_directories : include_dirs,
dependencies : filesystem_dep
)

Если используется библиотека boost :: filesystem, это должен быть правильный синтаксис:

filesystem_dep = dependency('boost', modules : ['filesystem'])

Как я могу указать, что я хочу версию, содержащуюся в стандартной библиотеке C ++? Это то, что я пытался без успеха: «libc ++ fs», «stdlib», «stdc ++», «libc ++», «c ++», «c ++ 17».

Это сообщение об ошибке, которое я получаю от Meson:

src / meson.build: 33: 0: ОШИБКА: Собственная зависимость ‘libc ++ fs’ не найдена

В настоящее время я использую компилятор LLVM / clang.

0

Решение

Зависимость () для внешних библиотек. Стандартные библиотеки должны быть настроены с использованием командной строки компилятора со специальными функциями, такими как add_XXX_arguments (). Так что постарайтесь

add_project_arguments(['-stdlib=libc++'], language : 'cpp')
add_project_link_arguments(['-stdlib=libc++','-lstdc++fs'], language : 'cpp')

Тем не менее, ‘-lstdc ++ fs’ может быть не нужен в вашем дело.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]