Многие люди (например, 1 , 2 ) спрашивали о том, как заставить std::filesystem::directory_iterator
работать, но у меня все еще есть проблемы после того, как я прочитал их.
Я пытаюсь создать небольшую статическую библиотеку.После добавления итератора каталога в некоторые исходные файлы я обновил свой gcc и добавил бит -lstdc++fs
, но, похоже, ничего не работает, потому что я получаю сообщение об ошибке
fatal error: filesystem: No such file or directory
#include <filesystem>
Если я печатаю gcc --version
, Я получаю
gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
И если я наберу gcc-8 --version
, я получу
gcc-8 (Ubuntu 8.1.0-1ubuntu1) 8.1.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Вот мой маленький сценарий оболочки, который компилирует все.Я тоже попробовал несколько других вариантов.
EIGEN=/usr/include/eigen3
cd ./bin
for file in ../src/*cpp; do
g++ -std=c++11 -fPIC -c -I$EIGEN -I../include -O3 $file "-lstdc++fs"
done
ar crv libfoo.a *.o
cd ..