Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么这个简单的c++;代码不可编译? #包括 #包括 #包括 使用名称空间std; int main() { srand(时间(空)); cout_C++ - Fatal编程技术网

C++ 为什么这个简单的c++;代码不可编译? #包括 #包括 #包括 使用名称空间std; int main() { srand(时间(空)); cout

C++ 为什么这个简单的c++;代码不可编译? #包括 #包括 #包括 使用名称空间std; int main() { srand(时间(空)); cout,c++,C++,BLUF:使用g++,而不是gcc 这是链接器错误的一个示例。您的程序编译得很好-例如,您可以在错误消息中看到对中间*.o文件的引用-但它在将事物链接到一起以生成可执行文件时遇到问题-链接器找不到程序所需的许多函数(例如,iostream库中使用的一些东西) 原因是因为你用来构建程序的命令是这样做的,它使得链接器试图将它构建成C程序——特别是,它只是链接到C标准库,而不是C++标准库,这就是为什么它不能找到这些东西。 通过将生成命令更改为链接器知道它正在构建C++程序,错误就消失了。 我自己使用

BLUF:使用
g++
,而不是
gcc

这是链接器错误的一个示例。您的程序编译得很好-例如,您可以在错误消息中看到对中间
*.o
文件的引用-但它在将事物链接到一起以生成可执行文件时遇到问题-链接器找不到程序所需的许多函数(例如,
iostream
库中使用的一些东西)

原因是因为你用来构建程序的命令是这样做的,它使得链接器试图将它构建成C程序——特别是,它只是链接到C标准库,而不是C++标准库,这就是为什么它不能找到这些东西。 通过将生成命令更改为链接器知道它正在构建C++程序,错误就消失了。
<>我自己使用GNU编译器集合来完成这个操作,而 GCC 足够聪明地编译< Cux> *.CPP</C>程序作为C++代码,它仍然试图把结果作为C程序链接起来。因此,你需要使用<代码> G++/Cuth>命令来构建C++程序。

BLUF:使用<代码> G++<代码>,而不是<代码> GCC > 这是链接器错误的一个示例。您的程序编译得很好-例如,您可以在错误消息中看到对中间

*.o
文件的引用-但它在将事物链接到一起以生成可执行文件时遇到问题-链接器找不到程序所需的许多函数(例如,
iostream
库中使用的一些东西)

原因是因为你用来构建程序的命令是这样做的,它使得链接器试图将它构建成C程序——特别是,它只是链接到C标准库,而不是C++标准库,这就是为什么它不能找到这些东西。 通过将生成命令更改为链接器知道它正在构建C++程序,错误就消失了。
<>我自己使用GNU编译器集合来完成这个操作,而 Gcc> /Cuffe足够聪明,可以将*.CPP</C>程序编译成C++代码,仍然尝试将结果链接成C程序。因此,你需要使用<代码> G++< /C>命令来构建C++程序。u删除
main
的主体。您在构建时是否使用命令
clang
clang++
?链接时存在差异。这不是编译错误,而是链接器错误。您需要提供更多详细信息(例如,用于构建程序的命令和版本)我认为编译的方式是链接器认为它是在构建C程序而不是C++程序。试试<代码> g++< /COD>而不是<代码> GCC < /代码>。你使用什么编译器?如果删除了代码<主体> <代码>,是否仍然发生错误。ILD?链接时会有差异。这不是编译错误,而是链接器错误。您需要提供更多详细信息(例如,用于生成程序的命令和版本)我认为你编译它的方式是链接器认为它正在构建C程序,而不是C++程序。试试<代码> G++<代码>,而不是<代码> GCC < /C>。
#include <iostream>
#include <cstdlib>
#include <ctime>    
using namespace std;


int main()
{
    srand(time(NULL));
    cout << rand() << endl ; 
    return 0; 
}
Undefined symbols for architecture x86_64:
  "std::__1::locale::use_facet(std::__1::locale::id&) const", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in test-c5b4b5.o
  "std::__1::ios_base::getloc() const", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in test-c5b4b5.o
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::put(char)", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in test-c5b4b5.o
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::flush()", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in test-c5b4b5.o
  "std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(int)", referenced from:
      _main in test-c5b4b5.o
  "std::__1::cout", referenced from:
      _main in test-c5b4b5.o
  "std::__1::ctype<char>::id", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in test-c5b4b5.o
  "std::__1::locale::~locale()", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in test-c5b4b5.o
  "std::terminate()", referenced from:
      ___clang_call_terminate in test-c5b4b5.o
  "___cxa_begin_catch", referenced from:
      ___clang_call_terminate in test-c5b4b5.o
  "___gxx_personality_v0", referenced from:
      std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in test-c5b4b5.o
      Dwarf Exception Unwind Info (__eh_frame) in test-c5b4b5.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)