2016-02-28 20 views
5

私は、次のCMakeLists.txtを持っている:Clionプロジェクトの展開方法は?

cmake_minimum_required(VERSION 3.3) 
project(Thesis) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

set(SOURCE_FILES main.cpp Graph.h Graph.cpp) 
add_executable(Thesis ${SOURCE_FILES}) 

私はカスタムフォルダClionProjects\Thesis\exe\Release上(リリースなど)実行 - >ビルドを使用していると私はThesis.exe単一の実行可能ファイルを取得します。私はそれを開くと、私は次の連続したエラーを取得:

1

を私は正確に何をしないのですか?

答えて

4

私の解決策は、ライブラリを静的にリンクすることでした。それはあなたの.exeの隣に厄介な.dllを立てる必要はありませんでした。

set(CMAKE_EXE_LINKER_FLAGS -static) 

CMakeLists.txt上の単一の行を追加する

は私の問題を修正しました。何らかの理由で必要な場合に備えて、他にも2つのオプションがあります。

#set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS} -static-libgcc -static-libstdc++ -static") 
#set(CMAKE_EXE_LINKER_FLAGS=-static-libgcc -static-libstdc++ -static) 

マイ.exeは100キロバイトから1メガバイト

編集に行ってきました:カップルより多くのクールなオプション

は私の質問の私の元CMakeLists.txt-s-O3を追加しました。

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -s -O3") 

-sサイズを1MBから650KBに縮小しました。

-O3-sはあなたがgcc.gnu.org siteからすべてのオプションを見ることができ、最大-O3

である3に最適化レベルを設定することになっています。あまりにも多くあります。ブラウザの「検索」オプションを使用します(Ctrl + F)。

0

必要なDLLが2つありません。

これを解決する最も簡単な方法は、GCCの-staticオプションを使用して、すべてのライブラリを静的にリンクするようにコンパイラに指示することです。

もう1つの方法は、実行可能ファイルが存在するフォルダにこれらのDLLをコピーすることです。

3番目の方法は、これらのDLLとregister themを見つけることです。

+1

明らかに最も便利な最初のオプションについてもっと詳しく説明できますか?これが問題のポイントです。どうしたらいいですか?私はどのようにわからない。 – dimitris93

+0

@Shiro:私はCmakeの使い方を知らないので、メイクファイルに何を追加する必要があるのか​​は分かりませんが、GCCに '-static'オプションを渡す方法を見つけ出す必要があります。 – nom

+1

私はこれをうまくやろうとしています – dimitris93

関連する問題