2

Windows で単純にライブラリをリンクする方法に関する情報を見つけるのに苦労しています。

Linuxにはこれらの素敵なgccオプションがあるようです(ここから)

gcc MadgwickAHRS.c -o MadgwickAHRS

Windowsでは次のようなものを使用する必要があります(hereから):

gcc -c -DBUILDING_EXAMPLE_DLL  MadgwickAHRS.c
gcc -shared -o MadgwickAHRS.dll MadgwickAHRS.o -l,--out-implib,MadgwickAHRS.a

最初のものは私にこのエラーを与えます:

c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../libmingw32.a(main.o):main.c:(.text+0xd2): 未定義「WinMain@16」への参照

そして2つ目、このエラー:

gcc.exe: MadgwickAHRS.a: そのようなファイルまたはディレクトリはありません

.a(与えられた指示からファイルを作成する方法がわかりません)。私はライブラリを適切にリンクすることができません#include "file.c"でし#include "file.h"#include "file.h". しかし、それを行う「適切な」方法を学びたいと思います.Cythonコードが.cコードを上書きしているように見えるのを見て...何か他のことを試す時が来たと思いました.

私の Cython/numpy の問題で私を助けたい場合/それがうまくいかないことを教えてください.私もそれを添付します. 私のコードはまだ十分にコメント/記述されていないので、それがあります.

コードを貼り付ける良い方法がわからないので、pastebin から含めます。これは主に Madgwick の Web サイトから引用したものです (リンクはコードです)。

ペーストビンの「リンク」は次のとおりです。

MadgwickAHRS.c

MadgwickAHRS.h

MadgwickAHRS.pyx

マジウィックAHRS.pxd

setup.py

GCC バージョン 4.5.2

ウィンドウズ7

パイソン 2.6

編集:

私は試した

gcc -shared MadgwickAHRS.c -o MadgwickAHRS.o

私のMadgwickAHRS.oを手に入れて、簡単なmain.cを書きました

#include "MadgwickAHRS.h"
int main (void) {
    MadgwickAHRSupdate(0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0);
    MadgwickAHRSupdateIMU(0.0,0.0,0.0,0.0,0.0,0.0);
    return 0;
}

次に、これを実行しました

gcc -c main.c  -o main.o

そしてそれらをリンクしました

gcc main.o MadgwickAHRS.o -lm -o main

私のexeを取得し、エラーなしで実行しました。先に進む前に、他に知っておくべきことはありますか? 返信ありがとうございます。:)

編集:あなたのコメントのおかげで、私は最終的に仕事へのリンクを得ました。使った

gcc -shared MadgwickAHRS.c -o MadgwickAHRS.o
4

2 に答える 2

0

ありがとうニクラスR

gcc -shared MadgwickAHRS.c -o MadgwickAHRS.o

必要な.oファイルを作成します

于 2013-01-22T12:54:41.053 に答える
0

コンソール アプリケーションを作成していることを指定する必要があると思います。ウィンドウアプリケーションとしてコンパイルするようです。プロジェクトのタイプを変更する方法を見つけてみてください。WinMain - Windows アプリケーションのエントリ関数です。このフラグが役立つかもしれません--subsystem,console

于 2013-01-22T07:30:48.433 に答える