cost 382 ms
gcc、段錯誤和靜態變量地址變化的奧秘(跨堆棧幀)

[英]gcc, segfault, and the mystery of the changing address of a static variable (across stack frames)

我在我的應用程序中遇到了段錯誤,並且已經研究了好幾個小時了。 我正在使用 gdb 分析回溯並注意到以下幾點: 上面有 2 個堆棧幀在同一個頭文件中引用相同的const string C_STATIC_STRING ,但是一個幀正確地尋址了變量(幀 3),另一個(幀 2)有一個偏移地址(如果我計算 ...

C++ / GCC 4.8 中的“round()”與“std::round()”和“fabs()”與“std::fabs()”

[英]'round()' vs 'std::round()' and 'fabs()' vs 'std::fabs()' in C++ / GCC 4.8

意外的是,我調用的是round()和fabs()而不是std::round()和std::fabs() ,對於最大的 integer 來說,一個long double可以保持而不會失去精度,這是有區別的。 考慮這個測試程序round.cpp : 使用g++ (GCC) 4.8.5 20150623 ...

g ++不會在模板代碼中發出-Wsign-compare

[英]g++ doesn't issue -Wsign-compare in template code

我最近注意到,當有問題的代碼位於函數模板中時,g ++不會發出有符號/無符號比較警告。 這是一個示例: 我正在像這樣編譯和執行它: 斷言失敗是預期的,因為整數提升會將-5轉換為真正的大無符號值。 但是匯編應該對此比較發出警告,不是嗎? 我可能在這里缺少一些基本知識,但是 ...

std :: stoul沒有拋出std :: out_of_range

[英]std::stoul not throwing std::out_of_range

考慮以下代碼: 這段代碼預計會從strerror打印一些“超出范圍”,然后根據文檔拋出out_of_range異常。 它永遠不應該到達最后的靈魂線。 在實踐中,它沒有拋出第二個stoul聲明。 我嘗試過GCC 4.8.5和MinGW 8.2.0,都沒有拋出out_of_rang ...

為什么在g ++ 4.8.5中出現此程序的編譯錯誤?

[英]Why do I get a compilation error for this program in g++ 4.8.5?

我正在嘗試解決在線法官的問題,該法官使用g ++ 4.8.5。 以下程序在我的計算機(g ++ 8.2.0)上使用-std=c++11 -pedantic-errors正確編譯: 但是,法官給我以下錯誤: In file included from /usr/include/c+ ...

2018-10-05 20:51:44   3   132    c++11 / g++4.8  
為了獲得size_t的定義,包括哪個標頭(cstddef,cstdio,cstdlib等)是否重要?

[英]Does it matter which header (cstddef, cstdio, cstdlib, etc.) I include to get the definition of size_t?

根據http://en.cppreference.com/w/cpp/types/size_t ,在許多頭文件中定義了size_t類型:cstddef,cstdio,cstdlib等。 在編寫自己的代碼時,應使用size_t包括哪些頭文件? 這似乎是一個瑣碎的問題,但是作為C ++的 ...

用C ++定義和數組

[英]Define and array in C++

我對Linux上g ++的此錯誤有疑問: 如您所見,這是在定義中。 我不明白為什么g ++說要使用臨時數組的地址 它比臨時性更具全球性... 此值是從讀取獲得的鍵轉義 隨便... 我該如何解決? 這段代碼可在osx上運行,但是我需要在linux上進行粗編譯 ...

2018-04-08 10:40:18   2   114    c++ / g++4.8  
安裝g ++ 4.8時找不到libpython2.7.20.1.0

[英]libpython2.7.20.1.0 not found while installing g++ 4.8

我正在嘗試使用以下命令將Centos6系統升級到g ++ 4.8: 但是我在步驟2上遇到錯誤: 我已經安裝了anaconda 4.4,並且正在從Anaconda路徑運行Python 3.6。 我不確定為什么嘗試升級g ++時會看到此錯誤。 ...

2018-03-18 22:20:39   1   17    g++ / g++4.8  
從C調用C ++函數時崩潰

[英]Crash when calling C++ function from C

我有一個從C函數調用的C ++庫函數。 該調用傳入一個由C ++代碼訪問的C數據結構。 訪問C數據結構時,我的程序在C ++代碼中崩潰。 我遵循了C ++常見問題解答中與C-to-C ++混合相關的所有說明。 崩潰發生在centos7機器上。 在調試模式下運行相同的代碼不會導致崩潰 ...

禁用將整數分配給字符串c ++

[英]disable assign integer to string c++

std :: string(std :: basic_string)具有“ char”類型的賦值運算符。 但是,由於這個原因,std :: string可以分配任何整數類型。 看到很少的例子。 問:如何禁用(或添加警告)(2、3、4)情況? 有一個相關的問題 ...

g ++ libcurl靜態構建在nghttp2庫上失敗

[英]g++ libcurl static build fails on nghttp2 library

我有一個將LibCurl庫與nghttp2-library結合使用的應用程序,我想將其靜態鏈接。 我用來構建的構建命令: 它產生的構建錯誤: 我用以下命令構建了nghttp2: 那么,使用靜態鏈接LibCurl和nghttp2庫的build命令有什么問題呢? ...

使用統一初始化調用復制構造函數

[英]calling copy constructor with uniform initialization

我試圖通過統一初始化調用默認復制構造函數,但它不起作用。 例如: 我把它編譯為: g++ -std=c++11 -c Ex1.cpp 編譯器給出了錯誤: 是不是統一初始化工作來復制初始化對象? ...

2017-09-21 08:54:53   2   40    c++11 / g++4.8  
g ++:錯誤:/u01/app/oracle/product/11.2.0/xe/lib/lclasses12.zip:此系統上未安裝Java編譯器

[英]g++: error: /u01/app/oracle/product/11.2.0/xe/lib/lclasses12.zip: Java compiler not installed on this system

我正在嘗試編譯cpp代碼,以嘗試與oracle db建立連接。 每當我收到這個錯誤 g ++:錯誤:/u01/app/oracle/product/11.2.0/xe/lib/lclasses12.zip:此系統上未安裝Java編譯器。 我正在執行的命令如下- / opt / rh ...

無法顯示字符串數組

[英]unable to display string array

當我嘗試運行此代碼時,它會編譯而沒有任何錯誤,但是我希望它顯示應該作為輸入的字符串和int數組。 取而代之的是,在給出一個輸入之后,我會看到一個零列表,程序終止。 但是,當我從兩個for循環中刪除包含k [j]的行時,它起作用了。 我究竟做錯了什么? 請原諒如果我是新手,如果被問到一些愚 ...

2017-04-08 14:38:48   1   30    c++11 / g++4.8  
C ++:評估順序運算符時忽略括號

[英]C++ : parentheses ignored when evaluating sequential operators

首先,我必須說這里提出的問題已經為我解決了,我想知道: 我誤會了什么 如果編譯器有錯誤(我知道這很罕見)(它是gcc 4.8.4)。 我想計算一個二維向量的范數,該向量僅在那一刻才被計算。 假設我要計算|| (x0,y0)-(x1,y1)|| ,由公式sqrt( ...

C ++編譯器中的奇怪行為 - 優化?

[英]Strange behavior in C++ compiler - Optimization?

我有一個函數,如果從地圖中刪除元素,則返回true否則返回false 。 以下是我的函數定義: 當我試圖檢查它是否有效時,我發現了非常奇怪的行為。 當我嘗試使用以下語法打印結果時: 這打印false | true false | true ,應該是true | fals ...

C ++編譯錯誤:無法識別的命令行選項“ -std = c ++ 11”

[英]C++ compiling error: unrecognized command line option “-std=c++11”

我正在使用g ++版本4.8.5。 我正在嘗試使用它來編譯我的項目。 直接從終端進行編譯時,它可以毫無問題地進行編譯。 但是,使用make文件時,即使我使用相同的選項,也會出現以下錯誤。 我在這里做錯了什么? 編輯:根據要求,這是我的makefile行: ...

將c ++ 98代碼升級到c ++ 11

[英]Upgrading c++98 code to c++11

我繼承了一個大的c ++代碼庫,最終得到它在64位Red Hat 7(gcc版本4.8.5 20150623)上編譯和運行。 默認情況下,項目中的makefile正在為c ++ 98進行編譯。 我想打開c ++ 11,因為這顯然提供了許多語言優勢。 g ++ 4.8對c ++ 11有相 ...

2016-06-22 18:14:42   2   1891    c++ / g++ / g++4.8  

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM