HTTP を介して特定の機能を公開する C++ プログラムを作成する必要があります。そのため、同じためにlibmicrohttpdを使用しようとしていました。現在、このライブラリは C で記述されています。ただし、私は C++ を初めて使用するので、ここに示す C および C++ コードをコンパイルしようとしています。(ここから git clone できます)
ここで、完全に C++ で書かれていないプログラムをコンパイルするために g++ を使用する方法を理解する助けが必要です。および/または上記のリンクされたコードをコンパイルする方法。
PS: Linux での作業
そして最後に、誰かが libmicrohttpd よりも簡単な代替手段を指摘できれば、私はすべて耳にします。
編集から編集:
ようやく機能しました。個々の cpp ファイルを gcc でコンパイルし、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
何を与える?