実現したいこと。
Windows10でWSLを使って、Ubuntu 18.04.2 LTSでプログラミングをしています。
私が実現したいことは、dllを作って、他のコンパイラでコンパイルしたプログラムから、そのdllを呼び出すということです。そのdllでcurlを用いた通信を予定しています。
現在に至るまでの経緯
まず、libcurlを使うに至ったわけはHTTPポストをしたかったからです。
Windowsでlibcurlのパッケージをインストールする方法がわからなかったので(コマンドプロンプトによるコマンドはできた)、WSLを用いてUbuntuの環境の中でlibcurlをインストールしました。
ここまでなら、何も問題なくUbuntuに元から入っているコンパイラで
g++ *.cpp -l curl -o *.exe ```として、コンパイルすることができました。(*はファイル名) 次に、他のプログラムから関数を呼び出せるようにするため、関数の最初に __declspec(dllexport)をつけてコンパイルしましたが、Ubuntuに元から入っているコンパイラで、はじかれてしまいました。 ```ここに言語を入力 $ g++ *.cpp -l curl -o *.exe *.cpp:16:11: error: expected constructor, destructor, or type conversion before ‘(’ token __declspec(dllexport) int notify( string authorization, string entryMessage )
パソコンに詳しいわけではないので、Ubuntuのコンパイラでは__declspec(dllexport)を認識することはできないと解釈しました。
この時点ではプログラムでcurlを使える状態ではあるが、__declspec(dllexport)を認識しないので、dllを使うことはできないと考えています。
そこで、MinGWをインストールして、__declspec(dllexport)をコンパイルしようと試みましが、今度はcurlで引っかかってしまいました。
$ x86_64-w64-mingw32-g++ *.cpp -l curl -o *.exe *.cpp:5:10: fatal error: curl/curl.h: No such file or directory #include <curl/curl.h> ^~~~~~~~~~~~~ compilation terminated.
curlに関する記述を消してコンパイルした場合は、__declspec(dllexport)を認識し、実行ファイルを作成することができました。現在、このような状態で、次にどうすればよいのかわからないです。どなたかご教授いただけたら幸いです。よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー