2016-09-02 9 views
2

私は比較的新しいC++であり、私はCLionsを使用しています。私は次のようにこのコードを実行しようとしています:コードのコンパイル時にリンカコマンドが失敗しましたか?

/* 
* File: Warmup.cpp 
* ---------------- 


#include <iostream> 
#include <string> 
#include "../lib/StanfordCPPLib/console.h" 
#include "../lib/StanfordCPPLib/simpio.h" 
using namespace std; 

/* Constants */ 

const int HASH_SEED = 5381;    /* Starting point for first cycle */ 
const int HASH_MULTIPLIER = 33;   /* Multiplier for each cycle  */ 
const int HASH_MASK = unsigned(-1) >> 1; /* All 1 bits except the sign  */ 

/* Function prototypes */ 

int hashCode(string key); 

/* Main program to test the hash function */ 

int main() { 
    string name = getLine("Please enter your name: John"); 
    int code = hashCode(name); 
    cout << "The hash code for your name is " << code << "." << endl; 
    return 0; 
} 

/* 
* Function: hash 
* Usage: int code = hashCode(key); 
* -------------------------------- 


int hashCode(string str) { 
    unsigned hash = HASH_SEED; 
    int nchars = str.length(); 
    for (int i = 0; i < nchars; i++) { 
     hash = HASH_MULTIPLIER * hash + str[i]; 
    } 
    return (hash & HASH_MASK); 
} 

はしかし、私は次のエラーを取得しています:

[ 50%] Building CXX object CMakeFiles/Warmup.dir/src/Warmup.cpp.o [100%] Linking CXX executable Warmup ld: library not found for -llib/StanfordCPPLib clang: error: linker command failed with exit code 1 (use -v to see invocation) make[3]: * [Warmup] Error 1 make[2]: [CMakeFiles/Warmup.dir/all] Error 2 make[1]: [CMakeFiles/Warmup.dir/rule] Error 2 make: * [Warmup] Error 2

私は、これは、マイクロソフトのスタジオCのために働くことを知っている++が、私はなぜそれを確認していないありえませんCLionsで動作します。誰かここでいくつかのアドバイスを与えてもらえますか?

ご協力いただければ幸いです。

おかげ

編集:これは私の現在のCMakeLists.txtファイルは次のようになります。

cmake_minimum_required(VERSION 3.6) 
project(0_Warmup) 

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

set(SOURCE_FILE src/Warmup.cpp) 
link_libraries(lib/StanfordCPPLib) 

add_executable(Warmup src/Warmup.cpp) 

私はどこかに、このライブラリをリンクエラーがいるのでしょうか?

+0

の上に追加さだと思います。それは適切なフォルダにありますか? – Hayt

+0

リンカのコマンドラインは実際どのように見えますか? '-L 'オプションを使ってライブラリを検索するためのpathesを追加することができます。 –

+0

@Hayt私のCMakeLists.txtファイルには、 'link_libraries(lib/StanfordCPPLib)'があります。私はまた、lib/StanfordCPPLibとしてフォルダに保存しています。そこでは、ライブラリルートとしてStanfordCPPLibをマークするだけでコンパイラは必要なヘッダファイルをインポートできないため、libフォルダをライブラリルートとしてマークしました。 – PutsandCalls

答えて

-3

私はuはあなたが `libにライブラリを使用している/ StanfordCPPLib`andそれは見つけることができないように見えます。この//

#include "../lib/StanfordCPPLib/console.h" 
#include "../lib/StanfordCPPLib/simpio.h"// library and u shud try once again a right path of library folder .. 
+3

私はこれが何かをここで解決するとは思わない。問題は、cmake /リンカーが必要なライブラリを見つけることができないようです。 – Hayt

関連する問題