GCC는 GNU 컴파일러 모음입니다. Linux에서 C, C ++, Go, Fortran 및 Ada를위한 사실상의 표준 컴파일러이며 다른 많은 언어와 플랫폼도 지원합니다. 컴파일러 외에도 GCC에는 여러 플랫폼과 시스템에서 널리 사용되는 툴체인 (libc, libstdc ++, objdump, nm 등)이 있습니다.
g ++가 포함 파일을 찾을 수 있었던 곳을 어떻게 알 수 있습니까? 기본적으로 내가 #include <foo.h> g ++는 경로를 추가하거나 변경하기 위해 포함 옵션을 사용하여 검색 경로를 스캔합니다. 그러나 결국에는 g ++가 컴파일하기로 선택한 foo.h의 절대 경로를 알 수있는 방법이 있습니까? 무수한 검색 경로에 하나 이상의 foo.h가있는 경우 특히 관련이 …
사례 1 : #include <iostream> int main() { double d = 15.50; std::cout<<(d/0.0)<<std::endl; } 경고없이 컴파일되고 인쇄 inf됩니다. 좋아요, C ++는 0으로 나누기를 처리 할 수 있습니다 ( 라이브 참조 ). 그러나, 사례 2 : #include <iostream> int main() { double d = 15.50; std::cout<<(d/0)<<std::endl; } 컴파일러는 다음 경고를 표시합니다 …
난 이미 읽은 gcc맨 페이지를,하지만, 난 여전히 사이의 차이를 이해할 수 없다 -fpic와 -fPIC. 누군가 매우 간단하고 명확하게 설명 할 수 있습니까? 관련 질문 : 공유 라이브러리를 구축 할 때 -fPIC는 무엇을 의미합니까? 실행 파일에서 사용되는 경우 gcc -fPIC 플래그를 사용하여 객체를 컴파일하는 것의 의미는 무엇입니까?
나는 C ++ 11 표준을 시도하기 시작했고 init 메소드 등을 피하기 위해 동일한 클래스의 다른 ctor에서 ctor를 호출하는 방법을 설명하는 이 질문을 발견 했습니다 . 이제 다음과 같은 코드로 동일한 작업을 시도하고 있습니다. hpp : class Tokenizer { public: Tokenizer(); Tokenizer(std::stringstream *lines); virtual ~Tokenizer() {}; private: std::stringstream *lines; }; cpp …
sizeof전 처리기 매크로에서 를 사용하는 방법이 있습니까? 예를 들어, 몇 년 동안 제가 다음과 같은 일을하고 싶었던 많은 상황이있었습니다. #if sizeof(someThing) != PAGE_SIZE #error Data structure doesn't match page size #endif 내가 여기서 확인하는 정확한 것은 완전히 구성되어 있습니다. 요점은 종종 이러한 유형의 (크기 또는 정렬) 컴파일 타임 검사를 삽입하여 …
popenin php...으로 C / C ++ 프로그램을 컴파일 할 때이 오류가 발생했습니다. g++: error trying to exec 'cc1plus': execvp: No such file or directory 하지만 쉘에서 PHP 코드를 실행하면 잘 작동합니다 .. 아치 리눅스에서 .. PHP 코드 : <?php function rfile($fp) { $out=""; while (!feof($fp)) { $out.= fgets($fp, 1024000); } …
이미 gcc / g ++-4.4가있는 우분투 11.04에 gcc-3.3 / g ++-3.3을 설치했습니다. 그래서 내 시스템에서는 gcc-3.3과 4.4를 모두 사용할 수 있습니다. 원하는대로 두 컴파일러를 모두 호출 할 수 있습니다. 명령 gcc을 호출하면 gcc-4.4가 호출됩니다. gcc-3.3을 호출하려면 명령을 사용해야합니다 gcc-3.3. 기본 컴파일러를 gcc-3.3으로 어떻게 변경할 수 있습니까? 명령을 실행하면 gccgcc-4.4가 아닌 …
문제는 Windows에서 잘 컴파일되는 동일한 코드가 Ubuntu에서 컴파일 할 수 없다는 것입니다. 이 오류가 발생할 때마다 : cc1: warnings being treated as errors 이제는 큰 코드 기반이며 모든 경고를 수정하는 것을 좋아하지 않습니다. 경고에도 불구하고 성공적으로 컴파일 할 수있는 방법이 있습니까?
누구든지 GCC를 사용하여 리소스 파일을 실행 파일이나 공유 라이브러리 파일로 정적으로 컴파일하는 방법을 알고 있습니까? 예를 들어, 절대 변경되지 않는 이미지 파일을 추가하고 싶습니다 (그렇다면 어쨌든 파일을 교체해야합니다). 파일 시스템에있는 것을 원하지 않습니다. 이것이 가능하다면 (그리고 Windows 용 Visual C ++도이 작업을 수행 할 수 있기 때문이라고 생각합니다), 자체 바이너리에 …
실제로 gcc 6.0 내에서 개발 책임자 인 새로운 C ++ 1z 기능을 사용하려고합니다. 이 작은 예를 들어 보면 : #include <iostream> #include <experimental/filesystem> namespace fs = std::experimental::filesystem; int main() { fs::path p1 = "/home/pete/checkit"; std::cout << "p1 = " << p1 << std::endl; } 나는 얻었다 : / opt / …
매시간 한 번씩 gcc를 사용하여 컴파일 된 실행 파일을 실행하는 cron 작업을 설정해야합니다. 루트로 로그인하고 입력했습니다. crontab -e 그런 다음 다음을 입력하고 파일을 저장했습니다. 0 * * * * /path_to_executable 그러나 cron 작업은 작동하지 않습니다. 입력 할 때 /...path_to_executable세그멘테이션 오류가 발생합니다. 내가 위치한 폴더에서만 실행 파일을 실행할 수 있습니다.이 문제를 …