1. 程式人生 > >Ubuntu下 gcc/g++ 編譯 template, 出現 call of overload " ..." is ambigous錯誤

Ubuntu下 gcc/g++ 編譯 template, 出現 call of overload " ..." is ambigous錯誤

Ubuntu下 gcc/g++ 編譯 template, 出現 call of overload ” …” is ambigous錯誤

練習Essential C++ 第二章練習題2.6時出現如題 的問題。

問題描述

#include<iostream>
#include<string>

using namespace std;

template <typename Type>
inline Type max(Type t1, Type t2){
 return t1 > t2 ? t1 : t2;
}


int main(){
   int
a = 1, b =2 ; float fa = 1.0 , fb = 2.0 ; cout << max (a , b) << endl; cout << max (fa , fb) << endl; return 0; }

以上程式碼在VS2017裡執行正常,在Ubuntu16.04LTS裡執行

g++ **.cpp

卻出現

call of overload ‘max (int &,int &)’ is ambiguous
…………….
In file included from /usr/include/c++……
/usr/include/c++/5/bits/stl_algobase.h:219:5……

原因和解決方案

自定義的max 和std中的max函式很編譯器糊塗了。改掉自定義的max名字即可解決。

相關推薦

Ubuntu gcc/g++ 編譯 template, 出現 call of overload " ..." is ambigous錯誤

Ubuntu下 gcc/g++ 編譯 template, 出現 call of overload ” …” is ambigous錯誤 練習Essential C++ 第二章練習題2.6時出現如題 的問題。 問題描述 #include<i

Linux系統使用入門進階總結(6)——Ubuntugcc/g++編譯連結過程

文章轉自: https://blog.csdn.net/VennyJin/article/details/82794331 這裡講的是最簡單的c/c++檔案在linux下編譯連結的過程,後期還可以使用cmake來完成更復雜的工程構建過程。請關注博主的後續文章哈~~~ Ubuntu下gcc

Ubuntugcc/g++多版本共存和版本切換

Ubuntu系統使用的gcc版本隨著釋出版本的不同而不同,在編譯android系統時不同的版本推薦用不同的gcc去編譯,那麼可不可以改變系統的gcc來適應android編譯環境的需求呢?答案是可以的。  先看看我們系統用的gcc和g++是什麼版本  gcc -v 可以獲得

關於Ubuntugcc編譯帶-lsqlite3出現錯誤的解決方法

如下錯誤: /usr/bin/ld: 找不到 -lsqlite3 collect2: error: ld returned 1 exit status Makefile:16: recipe for target 'FrontServer' failed make: ***

ubuntu GCC編譯程式出現 undefined reference to `std::ios_base::Init::Init()'問題——gcc編譯C++程式碼

hello.o: In function `main':hello.cpp:(.text+0x41): undefined reference to `std::cin'hello.cpp:(.text+0xd1): undefined reference to `std::cout'hello.o: In

Windows Sublime Text 配置Linux子系統(WSL)gcc/g++ 編譯環境

include 12px 重啟 結果 ctr 檢驗 AC system pat 0. 簡介(若已了解背景可以跳過此部分) Windows 10 Build 14316以上版本中加入了“Windows系統的Linux子系統”(Windows Subsystem for Lin

mac使用vim gcc/g++ 編譯cpp(c++)檔案並執行

首先確認gcc和g++版本,二者是否一致 命令:gcc -v;g++ -v 然後vim 編寫c++檔案,比如:#include <iostream>..... 最後儲存的時候要注意,exit+:sav+cppname.cpp “.cpp”字尾保證編譯器識別是c+

ubuntu環境使用G++編譯C++

單個原始檔生成可執行程式 下面是一個儲存在檔案 helloworld.cpp 中一個簡單的 C++ 程式的程式碼: /* helloworld.cpp */ #include <iostream> int main(int argc,char *argv[])

【Linux學習】Ubuntu嵌入式交叉編譯環境arm-linux-gcc搭建

(1)首先選擇一個路徑用來存放arm-linux-gcc。我選用的是/home/book,並在下面建立一個資料夾arm-linux-gcc。 (2)利用cp EABI-4.3.3_Emdedsky_20100610.tar.bz2 arm-linux-gcc,將壓縮包EA

windows(8) 在GVIM中使用gcc/g++編譯除錯c/cpp檔案

1. 首先下載安裝MinGW,下載地址: http://sourceforge.net/projects/mingw/。這個是邊下載邊安裝的,下載完成即安裝完成。我的安裝目錄為D:\MinGW; 2. 設定系統環境變數。右擊Computer -> Properties

Ubuntu配置交叉編譯環境

conf core chains 編譯 配置 -c 進行 spa 編譯環境 [email protected]/* */:~$ sudo apt-get update # 如果不安裝 gawk subversion wine1.6-dev 編譯會報錯 [ema

gcc/g++編譯(生動形象,從最容易入手的hello world解釋了庫的概念)

默認 是我 包含 gcc編譯 not found 拷貝 使用 用戶 做了 1. gcc/g++在執行編譯工作的時候,總共需要4步 (1).預處理,生成.i的文件[預處理器cpp] (2).將預處理後的文件不轉換成匯編語言,生成文件.s[編譯器egcs] (3).有匯編變為

學習記錄:gcc/g++ 編譯與鏈接

分析 相互 you get 步驟 後臺開發 四個步驟 targe 生成 gcc/g++ 編譯與鏈接 編譯與鏈接的過程可以分解為四個步驟:預處理、編譯、匯編、鏈接 預處理:源代碼文件和相關的頭文件,被預處理器cpp預處理成一個後綴為 .i 的文件(選項:-E) 編譯:把預

Ubuntugcc安裝

size ubunt 系統 宋體 sta free lib linux ont 在Ubuntu下安裝GCC和其他一些Linux系統有點不一樣。方法一:該方法超簡單:sudo apt-get build-depgcc就上面這條命令就可以搞定方法二:sudo apt-get

Ubuntu怎麽編譯並運行C、C++和Pascal語言?

tro 開始 用戶 步驟 ide gcc 但是 col inf 很多同學在安裝了Ubuntu的環境後,發現在Windows下的許多東西都打不開了,但是用網站上的在線IDE又不是很方便。 所以,ljn教你如何在Ubuntu下編譯並運行C、C++和Pascal。 一.編譯並

圖解Cygwin安裝教程(win10gcc,g++安裝)

Cygwin安裝教程(win10下gcc,g++安裝) 1. 從cygwin官網下載安裝包,下載地址:http://www.cygwin.com/setup-x86_64.exe 2. 點選“下一步” 3. 點選“下一步” 4. 選擇安裝位置,並點選下一步。 5. 本地包目錄位

ubuntugcc的升級

如果要升級gcc,直接用下面命令會報錯: sudo apt-get upgrade sudo apt-get install gcc-5 g++-5 最後查閱資料,得用下面幾行命令: sudo add-apt-repository ppa:ubuntu-toolchain-r/

Ubuntu配置gcc/g++環境

1.先安裝  sudo apt-get install build-essential   2.檢視 gcc 版本 然後安裝 統一版本的 g++ gcc --version 顯示出如下介面  3.安裝 g++ sudo apt-g

Ubuntu編輯並編譯執行c++程式

一、使用vim編輯c++程式碼: vim hello.cpp 輸入如下程式碼: #include <iostream> using namespace std; int main() { cout<<"Hello world!"<<endl;

深度學習入門:詳解 Ubuntu PaddlePaddle 原始碼編譯安裝

PaddlePaddle 是百度開源的一個深度學習框架,Paddle 提供的 Paddle book 對於那些深度學習入門的人簡直再方便不過。 想用 Paddle 進行模型訓練必然先進行安裝,這篇文章主要詳細的記錄一下 Paddle cpu 和 gpu 的原始碼編譯安裝。 個人認為原始