我需要创建一个通过 HTTP 公开某些功能的 C++ 程序。出于这个原因,我试图使用libmicrohttpd 来做同样的事情。现在这个库是用 C 编写的。但是我对 C++ 有点陌生,我正在尝试编译这里给出的 C 和 C++代码。(可以从这里 git 克隆)
现在我需要帮助来理解如何使用 g++ 来编译一个不是完全用 C++ 编写的程序。和/或如何编译上述链接代码。
PS:在 linux 中工作
最后,如果有人能指出比 libmicrohttpd 更简单的替代方案 - 我全都听好了。
编辑到编辑:
终于让它工作了。使用 gcc 编译各个 cpp 文件,然后使用 g++ 链接所有内容。我不知道这是如何工作的,也许有人可以在下面回复。我制作了以下脚本来编译和链接:
LOC="path/to/directory"
gcc -c httphandler.cpp -o httphandler.o -I $LOC
gcc -c strutil.cpp -o strutil.o -I $LOC
gcc -c api.cpp -o api.o -I $LOC
gcc -c executor.cpp -o executor.o -I $LOC
g++ -o out httphandler.o strutil.o api.o executor.o -lmicrohttpd -lboost_regex
但在最后一步中,我收到以下错误:
/usr/bin/ld: strutil.o: undefined reference to symbol '__cxa_free_exception@@CXXABI_1.3'
/usr/bin/ld: note: '__cxa_free_exception@@CXXABI_1.3' is defined in DSO /usr/lib/x86_64-linux-gnu/libstdc++.so.6 so try adding it to the linker command line
/usr/lib/x86_64-linux-gnu/libstdc++.so.6: could not read symbols: Invalid operation
是什么赋予了?