

visual c++ 2017 でx86 Native Tools Command Prompt for VS 2017からdllを作成しました。

開発環境ではそのdllは正しく動いたのですが、そのdllを他のpcにコピーしたところ認識されませんでした。（dllが認識されていればアプリケーションで現れるはずの選択肢が現れない）  
エラーなどは全くでていません。

ライブラリが足りないのかと思いg++の-staticに相当するリンクオプションを探してみたのですが、見つからず、どうしていいかわからなくなってしまいました。  
どうすれば開発環境以外のPCでもdllを認識させられるでしょうか  
よろしくお願いします。

makefileは以下のようになっています。

[code]

    CORE_DIR = ../..
    MY_DIR = e:/irensei19
    
    CC =  cl
    CFLAGS =  /c -I../.. -I$(MY_DIR) - 
    I$(MY_DIR)/tiny-dnn-1.0.0a2 /F 67108864 /bigobj /O2 /arch:AVX /EHsc
    
    OBJS = airandom.obj game.obj StringData.obj \
        irensei_rule_description.obj 
        irensei_ai_descripter.obj \
        Init.obj Point.obj PointSet.obj Board.obj 
        MyGame.obj MinSet.obj Territory.obj MCTAI.obj 
        MCTAI2.obj MCTAI3.obj MCTAI4.obj UCTNode.obj \
        Board8.obj PointSet8.obj Board13.obj 
        PointSet13.obj  DataBase.obj Pattern13.obj 
        Pattern19.obj Feature.obj DNNAI.obj DNNAI2.obj 
        DNNMove.obj TestAI.obj
    
        OBJS2 = Init.obj Point.obj PointSet.obj 
        Board.obj MyGame.obj MinSet.obj Territory.obj 
        MCTAI.obj UCTNode.obj \
        Board8.obj PointSet8.obj Board13.obj 
        PointSet13.obj MCTAI2.obj DataBase.obj
    
    airandom.dll: $(OBJS)
        $(CC) /LD -O2  $(OBJS)
        cp airandom.dll e:\irensei
    
    Init.obj:
        $(CC) $(CFLAGS) $(MY_DIR)/Init.cpp
    
    Point.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/Point.cpp
    
    DataBase.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/DataBase.cpp
    
    PointSet.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/PointSet.cpp
    
    Board.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/Board.cpp
    
    MyGame.obj:
        $(CC) $(CFLAGS)   MyGame.cpp 
    
    MinSet.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/MinSet.cpp
    
    Territory.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/Territory.cpp
    
    MCTAI.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/MCTAI.cpp
    
    MCTAI2.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/MCTAI2.cpp
    
    MCTAI3.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/MCTAI3.cpp
    
    MCTAI4.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/MCTAI4.cpp
    
    MCTAI_mt.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/MCTAI_mt.cpp
    
    MCTAI_mt2.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/MCTAI_mt2.cpp
    
    TestAI.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/TestAI.cpp
    
    DLAI.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/DLAI.cpp
    
    EvalAI.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/EvalAI.cpp
    
    Feature.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/Feature.cpp
    
    
    Board8.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/Board8.cpp
    
    PointSet8.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/PointSet8.cpp
    
    Board13.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/Board13.cpp
    
    PointSet13.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/PointSet13.cpp
    
    Pattern13.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/Pattern13.cpp
    
    Pattern19.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/Pattern19.cpp
    
    EvalDL.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/EvalDL.cpp
    
    DNNAI.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/DNNAI.cpp
    
    DNNAI2.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/DNNAI2.cpp
    
    DNNMove.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/DNNMove.cpp
    
    
    UCTNode.obj:
        $(CC) $(CFLAGS)  $(MY_DIR)/UCTNode.cpp
    
    airandom.obj: airandom.cpp
        $(CC) $(CFLAGS) airandom.cpp
    
    
    aiirandom.obj: aiirandom.c
        $(CC) $(CFLAGS)  aiirandom.c
    
    game.obj: $(CORE_DIR)/game.cpp
        $(CC) $(CFLAGS) $(CORE_DIR)/game.cpp
    
    StringData.obj: $(CORE_DIR)/StringData.cpp
        $(CC) $(CFLAGS) $(CORE_DIR)/StringData.cpp
    
    irensei_ai_descripter.obj: 
    $(CORE_DIR)/irensei_ai_descripter.c
        $(CC) $(CFLAGS) 
    $(CORE_DIR)/irensei_ai_descripter.c
    
    irensei_rule_description.obj: 
    $(CORE_DIR)/irensei_rule_description.c
        $(CC) $(CFLAGS) 
    $(CORE_DIR)/irensei_rule_description.c
    
    clean:
        rm *.obj *.dll
    
[/code]


CC BY-SA 4.0
2020-01-05T10:15:36.480
61985
2020-07-24T07:14:42.227
18637
question
visual-c++
dllが開発環境のPCでは認識されるが他のPCでは認識されない


> g++の-staticに相当するリンクオプション

`CFLAGS`に[`/MT`](https://docs.microsoft.com/ja-jp/cpp/build/reference/md-mt-
ld-use-run-time-library?view=vs-2019)を追加するのはどうでしょうか？


CC BY-SA 4.0
2020-01-05T12:16:36.000
61987
2020-01-05T12:16:36.000
4236
61985
answer


コメントで解決されたようですので、回答として編集・転記いたします。

> コンパイルオプションに`/arch:AVX`を付けていたのですが、他のパソコンというのがかなり古いパソコンでAVXを搭載してなかったのが原因みたいです。

> `/arch:SSE2`にしたら選択肢が現れました。今時AVXもないとは…  
>  ちなみにDependenciesはビルドしようとしたらエラーになったのでとりあえずDependency walkerで見てみたら依存関係はOKでした。


CC BY-SA 4.0
2020-07-24T07:14:42.227
68898
2020-07-24T07:14:42.227
9820
61985
answer