Я пытаюсь создать фрагмент кода 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.
Зависимость () для внешних библиотек. Стандартные библиотеки должны быть настроены с использованием командной строки компилятора со специальными функциями, такими как add_XXX_arguments (). Так что постарайтесь
add_project_arguments(['-stdlib=libc++'], language : 'cpp')
add_project_link_arguments(['-stdlib=libc++','-lstdc++fs'], language : 'cpp')
Тем не менее, ‘-lstdc ++ fs’ может быть не нужен в вашем дело.
Других решений пока нет …