这个clang ++错误消息是什么意思,为什么我得到它?我似乎无法在互联网上找到任何关于它的东西......
clang: warning: treating 'c-header' input as 'c++-header' when in C++ mode, this behavior is deprecated
这是我的代码,
MergeSort.h:
#ifndef __MERGESORT_H__ #define __MERGESORT_H__ #includeusing namespace std; class MergeSort; class MergeSort { public: MergeSort(); MergeSort(const int* list, int length); ~MergeSort(); friend ostream& operator<< (ostream& os, const MergeSort& ms); private: int* list; int len; }; ostream& operator<< (ostream& os, const MergeSort& ms); #endif
MergeSort.cpp:
#include#include "MergeSort.h" using namespace std; MergeSort::MergeSort() { list = new int[1]; list[0] = 0; len = 0; } MergeSort::MergeSort (const int* t, int length) { if (t) { len = length; list = new int[len]; for (int i = 0; i < length; i++) list[i] = t[i]; } else { list = new int[1]; list[0] = 0; len = 0; } } MergeSort::~MergeSort() { delete[] list; } ostream& operator<<(ostream& os, const MergeSort& ms) { for (int i = 0; i < ms.len; i++) os << ms.list[i]; return os; } int main() { int list[] = {1,2,3,4}; int list_len = sizeof(list)/sizeof(int); MergeSort ms = MergeSort(list, list_len); cout << ms << endl; cout << "hello world" << endl; }
并输出:
[gyeh@gyeh mergesort]$ clang++ -c -g -Wall MergeSort.cpp MergeSort.h clang: warning: treating 'c-header' input as 'c++-header' when in C++ mode, this behavior is deprecated [gyeh@gyeh mergesort]$ clang++ MergeSort.o -o MergeSort [gyeh@gyeh mergesort]$ valgrind --leak-check=yes ./MergeSort ==25774== Memcheck, a memory error detector ==25774== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==25774== Using Valgrind-3.9.0 and LibVEX; rerun with -h for copyright info ==25774== Command: ./MergeSort ==25774== 1234 hello world ==25774== ==25774== HEAP SUMMARY: ==25774== in use at exit: 0 bytes in 0 blocks ==25774== total heap usage: 1 allocs, 1 frees, 16 bytes allocated ==25774== ==25774== All heap blocks were freed -- no leaks are possible ==25774== ==25774== For counts of detected and suppressed errors, rerun with: -v ==25774== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 1 from 1)
Some program.. 33
您不应该编译头文件,只编译源文件.