Open cantbothertoshave opened 2 years ago
Ok, feeling like a monkey poking an ant hill with a stick, I found, in CMakeLists.txt the loop where it goes through the examples, i.e. line 213: target_link_libraries(${EXAMPLE}.fcgi PRIVATE Fastcgipp::fastcgipp pthread) --- I added that "pthread", and then it all builds. But for timer.fcgi, there are a bunch of warnings relating to std containers, something about "parameter passing changed in GCC 7.1" and such. I was using GCC 10.2 (cross compiler for arm-linux-gnueabihf, running on Debian11 in a VirtualBox VM on an Intel i7 laptop)
Make sure your cmake project is doing find_package(Fastcgipp)
and that you're calling target_link_libraries(targetname PRIVATE Fastcgipp::fastcgipp)
(could be public if needed). Fastcgi++ requires C++20 and the Threads cmake target which should be automatically linked to your target if you link to the Fastcgipp::fastcgipp target.
If you need to manually set your flags you'll want to add -std=c++20
and -lpthread
for linux systems on GCC and Clang.
Make sure your cmake project is doing
find_package(Fastcgipp)
and that you're callingtarget_link_libraries(targetname PRIVATE Fastcgipp::fastcgipp)
(could be public if needed). Fastcgi++ requires C++20 and the Threads cmake target which should be automatically linked to your target if you link to the Fastcgipp::fastcgipp target.If you need to manually set your flags you'll want to add
-std=c++20
and-lpthread
for linux systems on GCC and Clang.
this DEFINITELY should be in the README file! @eddic
I am trying to cross-compile this for arm-linux-gnueabihf (raspberry pi), so I created a toolchain file setting compilers, assembler, linker etc to those prefixed toolchain binaries.
The library builds.
When I try "make timer.fcgi" (or other examples), it gives me a linker error: undefined reference to 'pthread_cond_clockwait' and 'pthread_create'.
Now I know pthread-related linker errors when quickly setting up an own little project and just add an option to statically link that. But this shouldn't happen here, right? Is there a conceivable way of how that can happen due to the cross-compilation setup missing something? I'm not exactly experienced in CMake.