Manjaro error boost lib

hey im getting this error when trying to compile now

/home/jacos/OF/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofFileUtils.o):ofFileUtils.cpp:function void boost::sp_adl_block::intrusive_ptr_release<boost::filesystem::detail::dir_itr_imp, boost::sp_adl_block::thread_safe_counter>(boost::sp_adl_block::intrusive_ref_counter<boost::filesystem::detail::dir_itr_imp, boost::sp_adl_block::thread_safe_counter> const*): error: undefined reference to 'boost::filesystem::detail::dir_itr_close(void*&, void*&)'
collect2: error: ld returned 1 exit status
make[1]: *** [/home/jacos/OF/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk:405: bin/dex-ui] Error 1

any ideas what is it what happen i did just recently update manjaro

downloaded the nightly vs the ./compileOf works fine but i f i try to compile a project i get the same error anyone out there know whats this about

Hey @cyrstem, the nightly build now has support for c++17, which required reworking the file system in oF. So maybe try adding a cxx flag ā€˜-std=c++17ā€™ to the project makefile (or the .qbs file in Qt Creator, etc). Iā€™m thinking the ./compileOF script compiles the nightly build with c++17 because this flag is set in the config.linux.common.mk file on line 139.

1 Like

hey @TimChi thanks how do i do that exactly ? just add that to the make file iā€™m using visual studio code
?

Hum, not sure with VS Code. Does it use the project config.make when it builds? If so, I would try uncommenting line 140 of config.make in the project and add the flag there:

PROJECT_CXX += -std=c++17

Or maybe there is a way to set this flag as a build setting in VS Code? The IDEs are all a bit different this way. With QT Creator, there is a line in the project .qbs file that is similar to the above, where flags can be passed to the compiler to tell it which version of c++ to use. There is also probably a way in its settings to set the flag for every project.

If you still have trouble maybe we can ping Theo and ask him the best way to do this.

1 Like