Potential link problem building converter and authoring with HC 2024.1.0

Prior to HC 2024.1.0, Boost was used for filesystem operations in some components like converter, libconverter and libsc. This Boost dependency was replaced with the std C++ filesystem (Filesystem library (since C++17) - cppreference.com). However since we’re not on C++17, an experimental version of the library provided by most compilers is used.

If you see a linking error like the following;

/usr/bin/ld: …/HOOPS_Communicator_2024.1.0/authoring/converter/bin/linux64/libconverter.so: undefined reference to `std::experimental::filesystem::v1::path::_M_split_cmpts()’

you should add -lstdc++fs to the list of libraries to link.

1 Like

Thanks Mike! I’m going to move this one into our KB

As an additional info, lstdc++fs should be specified after -lconverter.
i.e.)

BIN = ~/SDK/HOOPS_Communicator_2024.1.0/authoring/converter/bin/linux64/testConverter

OBJS = main.cpp
CC = g++ -std=c++11

PATH_TO_INCLUDES = -I ~/SDK/HOOPS_Exchange_Publish_2024.1.0/include \
	-I ~/SDK/HOOPS_Communicator_2024.1.0/authoring/libconverter/include 

PATH_TO_LIBCONVERTER = ~/SDK/HOOPS_Communicator_2024.1.0/authoring/converter/bin/linux64

LDLIBS = -ldl -lstdc++\
	-L$(PATH_TO_LIBCONVERTER) \
	-lconverter \
	-lstdc++fs

$(BIN): $(OBJS)
	$(CC) $(PATH_TO_INCLUDES) $(OBJS) -o $(BIN) $(LDLIBS)
1 Like