0
當我在Eclipse中編譯我的代碼時,它工作正常。但是如果我嘗試用CMake進行編譯,該過程將失敗。它說:「不命名類型」 - 使用CMake編譯時發生錯誤
error: ‘default_random_engine’ does not name a type default_random_engine generator;
error: ‘uniform_int_distribution’ does not name a type uniform_int_distribution distribution;
和一些更多的錯誤,我相信這是這兩個的後果。
class randomInt
{
private:
int m_max;
default_random_engine generator;
uniform_int_distribution<int> distribution;
public:
randomInt(int max = 0) :
m_max(max),
generator(time(0)),
distribution(0, m_max)
{}
int operator()()
{
return distribution(generator);
}
};
int main(int argc, char **argv)
{
vector<int> vec(100);
generate(vec.begin(), vec.end(), randomInt(100));
ostream_iterator<int> streamIt(cout, ",\n");
copy(vec.begin(), vec.end(), streamIt);
return 0;
}
還有就是我的CMakeLists.txt
project(TEST)
# States that CMake required version must be greater than 2.6
cmake_minimum_required(VERSION 2.8)
# Setup sources
set(TEST_SOURCES
aufgabe2_1.cpp
aufgabe2_2.cpp
aufgabe2_3.cpp
aufgabe2_4.cpp)
set(CMAKE_CXX_FLAGS_DEBUG "-g -Wall -std=c++11")
# Build executable
add_executable(main ${TEST_SOURCES})
也許,Eclipse使用的編譯器不同於Cmake。在這兩種情況下,您都可以檢查編譯可執行文件的命令行。 – Tsyvarev