Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/88: Рейтинг темы: голосов - 88, средняя оценка - 4.53
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1

Ошибки линковки std::filesystem

18.10.2016, 21:52. Показов 16995. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. В общем я хотел поиграться с фишками будущего стандарта, а именно с std::experimental::filesystem.
Столкнулся с некоторой проблемой, а именно - линковка библиотек из командной строки.
В IDE не проверял, но вот простенький пример с cppreference не компилируется.
C++
1
2
3
4
5
6
7
8
9
10
/////////////////////////////////////////////////////////////////////
#include <iostream>
#include <experimental/filesystem>
/////////////////////////////////////////////////////////////////////
int main()
{
    namespace fs = std::experimental::filesystem;
    
    std::cout << fs::current_path() << std::endl;
}
Вернее, компилируется, но на стадии линковки выплёвывает:
Code
1
2
3
4
5
6
7
g++ -Wall -std=c++14 new.cpp -o new.exe
Process started >>>
C:\DOCUME~1\Anon\LOCALS~1\Temp\cceSkaas.o:new.cpp:(.text+0x1e): undefined reference to `std::experimental::filesystem::v1::current_path[abi:cxx11]()'
C:\DOCUME~1\Anon\LOCALS~1\Temp\cceSkaas.o:new.cpp:(.text$_ZNSt12experimental10filesystem2v17__cxx1116filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10error_code[__ZNSt12experimental10filesystem2v17__cxx1116filesystem_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10error_code]+0x2a): undefined reference to `vtable for std::experimental::filesystem::v1::__cxx11::filesystem_error'
C:\DOCUME~1\Anon\LOCALS~1\Temp\cceSkaas.o:new.cpp:(.text$_ZNKSt12experimental10filesystem2v17__cxx114path6stringIcSt11char_traitsIcESaIcEEENSt7__cxx1112basic_stringIT_T0_T1_EERKSC_[__ZNKSt12experimental10filesystem2v17__cxx114path6stringIcSt11char_traitsIcESaIcEEENSt7__cxx1112basic_stringIT_T0_T1_EERKSC_]+0x198): undefined reference to `std::experimental::filesystem::v1::__cxx11::filesystem_error::~filesystem_error()'
collect2.exe: error: ld returned 1 exit status
<<< Process finished. (Exit code 1)
Накопал в интернете, правлю и выплёвывает это:
Code
1
2
3
4
5
6
g++ -Wall -std=c++14 new.cpp -o new.exe -lstdc++fs
Process started >>>
C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/6.1.0/libstdc++fs.a(ops.o):(.text$_Z10_wrealpathPKwPw+0x68): undefined reference to `CreateTransaction@28'
C:/mingw32/bin/../lib/gcc/i686-w64-mingw32/6.1.0/libstdc++fs.a(ops.o):(.text$_Z10_wrealpathPKwPw+0x121): undefined reference to `CommitTransaction@4'
collect2.exe: error: ld returned 1 exit status
<<< Process finished. (Exit code 1)
Может я чего-то неправильно пишу? Или надо ещё что-то линковать?
Поиск в гугле больше ничего не дал.
P.S. Переставлял местами, результат не дал практически никаких результатов.
Кроме того, что после этого линковщик либу не видит и выплёвывает первое приведенное мною сообщение.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.10.2016, 21:52
Ответы с готовыми решениями:

MinGW_GCC8.2 Проблемы с компиляцией std::filesystem
Компилятор я взял от сюда: https://nuwen.net/mingw.html Исходный проект отсюда: https://github.com/sol-prog/cpp17-filewatcher блог...

ошибки линковки с++(...
помогите пожалуйста!! справится с ошибками линковки масив.obj : error LNK2001: unresolved external symbol &quot;void __cdecl obr(int...

Ошибки линковки
Нужна помощь! Как исправить эти ошибки при компиляции! Все либы и заголовки дополнительные указаны он вроде их не требует! Я даже не...

17
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
18.10.2016, 21:59
GbaLog-, волшебное слово: -lstdc++fs
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
18.10.2016, 22:00  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
волшебное слово
Смотрите второй запуск:
Цитата Сообщение от GbaLog- Посмотреть сообщение
g++ -Wall -std=c++14 new.cpp -o new.exe -lstdc++fs
0
209 / 183 / 114
Регистрация: 15.03.2014
Сообщений: 398
18.10.2016, 22:07
Попробуйте ключ компилятору -std=c++17. Если компилятор поддерживает конечно.
У меня g++ 5.4.1 собирает без проблем.
1
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
18.10.2016, 22:09  [ТС]
Цитата Сообщение от BlackSpace Посмотреть сообщение
Попробуйте ключ компилятору -std=c++17.
То же самое.
Уже думаю, что всё дело в том, что у меня WinXP.
Кстати, у меня:
Code
1
2
3
4
g++ (i686-posix-dwarf, Built by MinGW-W64 project) 6.1.0
Copyright (C) 2016 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.
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
18.10.2016, 22:12
GbaLog-, А если к заклинанию добавить: -lKtmw32 ?

Добавлено через 1 минуту
Цитата Сообщение от GbaLog- Посмотреть сообщение
Уже думаю, что всё дело в том, что у меня WinXP.
Ага, эти функции, вроде, только с Висты появились.
3
209 / 183 / 114
Регистрация: 15.03.2014
Сообщений: 398
18.10.2016, 22:14
GbaLog-,
Code
1
2
3
4
g++ (Ubuntu 5.4.1-2ubuntu1~14.04) 5.4.1 20160904
Copyright (C) 2015 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.
Возможно, что на XP действительно не прокатит.

Не по теме:

Для работы с файлами только boost file system использую, есть документация более менее нормальная на официальном сайте. Для моих нужд хватает. Не пробовали?

0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
18.10.2016, 22:17  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
А если к заклинанию добавить: -lKtmw32 ?
Тогда компилируется, но после запуска..

Цитата Сообщение от Croessmah Посмотреть сообщение
Ага, эти функции, вроде, только с Висты появились.
Похоже, что Вы тут не шутите.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
18.10.2016, 22:18  [ТС]
Цитата Сообщение от BlackSpace Посмотреть сообщение
Не пробовали?
Суть-то в том, что:
Цитата Сообщение от cppreference about filesystem
The filesystem library was originally developed as boost.filesystem, was published as the technical specification ISO/IEC TS 18822:2015, and finally merged to ISO C++ as of C++17. The boost implementation is currently available on more compilers and platforms than the C++17 library.
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
18.10.2016, 22:22
Лучший ответ Сообщение было отмечено GbaLog- как решение

Решение

Цитата Сообщение от GbaLog- Посмотреть сообщение
Похоже, что Вы тут не шутите.
Нет, не шучу:
CreateTransaction function
CommitTransaction function

XP уже давно ушла, она более не поддерживается мелкософтом,
так что клепать что-то под нее уже мало кому надо.
1
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
18.10.2016, 22:24  [ТС]
Цитата Сообщение от Croessmah Посмотреть сообщение
XP уже давно ушла, она более не поддерживается мелкософтом,
так что клепать что-то под нее уже мало кому надо.
Придётся, значит, искать другие пути.
Я так легко не сдаюсь!
Хотя, скорее я докуплю наконец уже оперативки и поставлю 7-ку.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
18.10.2016, 23:31
Лучший ответ Сообщение было отмечено GbaLog- как решение

Решение

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
XP уже давно ушла, она более не поддерживается мелкософтом,
так что клепать что-то под нее уже мало кому надо.
расскажите это офисному планктону )))
у них там, 95 винду встретить можно.
а нам, программистам,
соотвествено приходиццо страдать поддерживать все это старье в рабочем состоянии



Цитата Сообщение от GbaLog- Посмотреть сообщение
Придётся, значит, искать другие пути.
boost.filesystem жеж.

Добавлено через 54 секунды
Цитата Сообщение от GbaLog- Посмотреть сообщение
MinGW
не умеет std::filesystem в принципе.
0
18.10.2016, 23:32

Не по теме:

Цитата Сообщение от hoggy Посмотреть сообщение
не умеет std::filesystem в принципе.
Почему у меня на работе умеет? :)

0
18.10.2016, 23:34

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
Почему у меня на работе умеет?
а хз.
может новый вышел, который умеет,
и мои знания устарели.

я же для себя понял:
держите буст близко, и не будит вам геморроя

0
18.10.2016, 23:35

Не по теме:

Цитата Сообщение от hoggy Посмотреть сообщение
держи буст близко, и не будит тебе геморроя
будет их сразу два. :D

0
18.10.2016, 23:37

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
будет их сразу два.
это тоже верно.
никто ж не гарантирует, что бустовские билды совместимы с std.
что ставит конкретные палки в колеса переходу на новый с++,
и привязывает намертво к бусту.

жизнь - боль и страдания.

0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
19.10.2016, 11:20  [ТС]
Цитата Сообщение от hoggy Посмотреть сообщение
boost.filesystem жеж.
А я думал, что раз std::filesystem перешел из буста, то и бустовский тоже не будет работать.
Сейчас попробовал и всё работает.
Значит, всё-таки что-то они там переделали.
1
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
19.10.2016, 12:55
Цитата Сообщение от GbaLog- Посмотреть сообщение
Значит, всё-таки что-то они там переделали.
Из буста переходит только концепция + частично интерфейсы. Реализация всегда своя.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.10.2016, 12:55
Помогаю со студенческими работами здесь

[MPI] Ошибки линковки
Надо было написать проект который складывает числа в массиве. И выводит сумму. Одно из требований использование MPI. Но при компиляции...

Ошибки на стадии линковки
obj\Release\main2.o:main2.cpp|| undefined reference to `__gxx_personality_sj0'| obj\Release\main2.o:main2.cpp|| undefined reference to...

Ошибки линковки в двусвязном списке
Помогите, пожалуйста, разобраться, в чем ошибки.. Возникают на этапе линковки, Error LNK2019 unresolved external symbol List.h #include...

Ошибки линковки библиотеки FLTK
Добрые сутки, на данный момент я изучаю FLTK По исключительной ситуации я ничего не могу понять, проблема состоит в том что я работаю...

Ошибки линковки LNK2005, LNK1169
Как-то пробовал сделать программу из нескольких модулей, но наткнувшись на какие-то непонятные ошибки забросил это дело... Решив же...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru