프로그램 사용/gcc2020. 11. 24. 11:12

intel xeon Phi (KNL) 이나 Nvidia PTX 그리고 AMD HSAIL을 지원하는 predictive 라고 해도 먼 소리인지 모르겠다.

 

 

[링크 : https://gcc.gnu.org/wiki/Offloading]

[링크 : https://gcc.gnu.org/wiki/nvptx]

[링크 : https://gcc.gnu.org/wiki/OpenACC]

 

[링크 : https://repository.kisti.re.kr/bitstream/10580/6542/1/2014-147%20Slurm%20관리자%20이용자%20가이드.pdf]

'프로그램 사용 > gcc' 카테고리의 다른 글

gcc offloading support  (0) 2020.11.24
gcc 특정 영역만 최적화 하지 않게 하기  (0) 2020.10.21
gcc의 linker 옵션 은 가장 끝에  (0) 2019.06.21
c large file support  (0) 2019.06.21
gcc5 atoi / stoi  (0) 2019.06.14
gcc variadic macro  (0) 2017.06.20
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/gcc2020. 10. 21. 12:47

gcc 4.4 이후 버전 사용가능

#pragma GCC push_options
#pragma GCC optimize ("O0")

your code

#pragma GCC pop_options

 

void __attribute__((optimize("O0"))) foo(unsigned char data) {
    // unmodifiable compiler code
}

[링크 : https://stackoverflow.com/questions/2219829/how-to-prevent-gcc-optimizing-some-statements-in-c]

'프로그램 사용 > gcc' 카테고리의 다른 글

gcc offloading support  (0) 2020.11.24
gcc 특정 영역만 최적화 하지 않게 하기  (0) 2020.10.21
gcc의 linker 옵션 은 가장 끝에  (0) 2019.06.21
c large file support  (0) 2019.06.21
gcc5 atoi / stoi  (0) 2019.06.14
gcc variadic macro  (0) 2017.06.20
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/gcc2019. 6. 21. 17:40

예전글에서 누락된 부분인데..

-l로 링커에 넘겨서 붙일 녀석들은 왜인지 모르겠지만 가장 마지막에 옵션을 주어야 한다.

 

아래처럼 파일명 이후에 -l을 넣어주면 문제없이 되는데

$ gcc -I/usr/include/libxml2 reader2.c  -lxml2 

 

-l 이후에 파일명을 넣으면 해당 파일을 찾을수 없다고 나온다.

(그냥 테스트 해보면 -lxml2를 넣지 않은것과 동일하다)

$ gcc -I/usr/include/libxml2 -lxml2 reader2.c
/tmp/ccUmEsNl.o: In function `processNode':
reader2.c:(.text+0x19): undefined reference to `xmlTextReaderConstName'
reader2.c:(.text+0x3b): undefined reference to `xmlTextReaderConstValue'
reader2.c:(.text+0x4b): undefined reference to `xmlTextReaderHasValue'
reader2.c:(.text+0x5a): undefined reference to `xmlTextReaderIsEmptyElement'
reader2.c:(.text+0x69): undefined reference to `xmlTextReaderNodeType'
reader2.c:(.text+0x77): undefined reference to `xmlTextReaderDepth'
reader2.c:(.text+0xb8): undefined reference to `xmlStrlen'
/tmp/ccUmEsNl.o: In function `streamFile':
reader2.c:(.text+0x11d): undefined reference to `xmlReaderForFile'
reader2.c:(.text+0x138): undefined reference to `xmlTextReaderRead'
reader2.c:(.text+0x155): undefined reference to `xmlTextReaderRead'
reader2.c:(.text+0x16a): undefined reference to `xmlTextReaderIsValid'
reader2.c:(.text+0x19a): undefined reference to `xmlFreeTextReader'
/tmp/ccUmEsNl.o: In function `main':
reader2.c:(.text+0x209): undefined reference to `xmlCheckVersion'
reader2.c:(.text+0x221): undefined reference to `xmlCleanupParser'
reader2.c:(.text+0x226): undefined reference to `xmlMemoryDump'
collect2: error: ld returned 1 exit status

 

머지?

foo.o -lz bar.o일 경우

foo.o는 libz가 로드 되지만, bar.o 에서는 libz가 로드되지 않는다?

-llibrary
-l library
Search the library named library when linking. (The second alternative with the library as a separate argument is only for POSIX compliance and is not recommended.)
It makes a difference where in the command you write this option; the linker searches and processes libraries and object files in the order they are specified. Thus, foo.o -lz bar.o searches library z after file foo.o but before bar.o. If bar.o refers to functions in z, those functions may not be loaded.

The linker searches a standard list of directories for the library, which is actually a file named liblibrary.a. The linker then uses this file as if it had been specified precisely by name.

The directories searched include several standard system directories plus any that you specify with -L.

Normally the files found this way are library files---archive files whose members are object files. The linker handles an archive file by scanning through it for members which define symbols that have so far been referenced but not defined. But if the file that is found is an ordinary object file, it is linked in the usual fashion. The only difference between using an -l option and specifying a file name is that -l surrounds library with lib and .a and searches several directories.

[링크 : https://linux.die.net/man/1/gcc]

'프로그램 사용 > gcc' 카테고리의 다른 글

gcc offloading support  (0) 2020.11.24
gcc 특정 영역만 최적화 하지 않게 하기  (0) 2020.10.21
gcc의 linker 옵션 은 가장 끝에  (0) 2019.06.21
c large file support  (0) 2019.06.21
gcc5 atoi / stoi  (0) 2019.06.14
gcc variadic macro  (0) 2017.06.20
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/gcc2019. 6. 21. 17:02

아래의 선언을 해주면 된다는데.. 모르겠다?

 

-D_LARGE_FILE_SOURCE=1

[링크 : https://stackoverflow.com/questions/14533836/large-file-support-not-working-in-c-programming]

'프로그램 사용 > gcc' 카테고리의 다른 글

gcc 특정 영역만 최적화 하지 않게 하기  (0) 2020.10.21
gcc의 linker 옵션 은 가장 끝에  (0) 2019.06.21
c large file support  (0) 2019.06.21
gcc5 atoi / stoi  (0) 2019.06.14
gcc variadic macro  (0) 2017.06.20
문자열에 escape 로 특수문자 넣기  (0) 2017.06.19
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/gcc2019. 6. 14. 15:28

????

'프로그램 사용 > gcc' 카테고리의 다른 글

gcc의 linker 옵션 은 가장 끝에  (0) 2019.06.21
c large file support  (0) 2019.06.21
gcc5 atoi / stoi  (0) 2019.06.14
gcc variadic macro  (0) 2017.06.20
문자열에 escape 로 특수문자 넣기  (0) 2017.06.19
gcc cpp type (유니코드 문자열)  (0) 2017.04.04
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/gcc2017. 6. 20. 09:49

매크로에도 ...을 쓸 수 있다니 ㄷㄷ


#define eprintf() fprintf (stderr, __VA_ARGS__)

[링크 : https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html]

'프로그램 사용 > gcc' 카테고리의 다른 글

c large file support  (0) 2019.06.21
gcc5 atoi / stoi  (0) 2019.06.14
gcc variadic macro  (0) 2017.06.20
문자열에 escape 로 특수문자 넣기  (0) 2017.06.19
gcc cpp type (유니코드 문자열)  (0) 2017.04.04
gcc 매크로 확장 define stringfication  (0) 2017.01.02
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/gcc2017. 6. 19. 22:10

"\x6E" 이런식으로 문자를 넣으면 되는데 연속으로 넣으면 에러날수도(?)

만약에


0xc0 À 를 넣으면

"\xC0" 인데

À1 을 출력하고 싶다고

"\xC01"을 넣으면 이상한 걸로 인식을 하거나 에러나기도 한다.


어떻게 해결 해야 하려나...


\nnnnote 1anyThe byte whose numerical value is given by nnn interpreted as an octal number
\xhh…anyThe byte whose numerical value is given by hh… interpreted as a hexadecimal number
\enote 21Bescape character (some character sets)
\Uhhhhhhhhnote 3noneUnicode code point where h is a hexadecimal digit
\uhhhhnote 4noneUnicode code point below 10000 hexadecimal

[링크 : https://en.wikipedia.org/wiki/Escape_sequences_in_C]

'프로그램 사용 > gcc' 카테고리의 다른 글

gcc5 atoi / stoi  (0) 2019.06.14
gcc variadic macro  (0) 2017.06.20
문자열에 escape 로 특수문자 넣기  (0) 2017.06.19
gcc cpp type (유니코드 문자열)  (0) 2017.04.04
gcc 매크로 확장 define stringfication  (0) 2017.01.02
gcc make CFLAGS=-D 관련  (0) 2016.11.17
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/gcc2017. 4. 4. 21:00

GCC G++ 공식문서를 찾지 못했는데

아무튼.. wchar_t 로 wide character형이 추가된것 외에는 차이가 없는듯

kldp 쪽을 봐도 gcc에서는 UTF-32 4byte 로 된다는 정도만 있는것 봐서는

MSVC에 비해 유니코드 대응이 미진하긴 미진 한 듯.


wchar_t

type for wide character representation (see wide strings). Required to be large enough to represent any supported character code point (32 bits on systems that support Unicode. A notable exception is Windows, where wchar_t is 16 bits and holds UTF-16 code units) It has the same size, signedness, and alignment as one of the integral types, but is a distinct type.


[링크 : http://en.cppreference.com/w/cpp/language/types]

[링크 : http://en.cppreference.com/w/cpp/keyword]

'프로그램 사용 > gcc' 카테고리의 다른 글

gcc variadic macro  (0) 2017.06.20
문자열에 escape 로 특수문자 넣기  (0) 2017.06.19
gcc cpp type (유니코드 문자열)  (0) 2017.04.04
gcc 매크로 확장 define stringfication  (0) 2017.01.02
gcc make CFLAGS=-D 관련  (0) 2016.11.17
gcc -fPIC  (0) 2016.06.22
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/gcc2017. 1. 2. 15:14

#define STRING(x) #x


간단하네


[링크 : https://gcc.gnu.org/onlinedocs/cpp/Stringification.html]

[링크 : http://stackoverflow.com/questions/10507264/how-to-use-macro-argument-as-string-literal]

'프로그램 사용 > gcc' 카테고리의 다른 글

문자열에 escape 로 특수문자 넣기  (0) 2017.06.19
gcc cpp type (유니코드 문자열)  (0) 2017.04.04
gcc 매크로 확장 define stringfication  (0) 2017.01.02
gcc make CFLAGS=-D 관련  (0) 2016.11.17
gcc -fPIC  (0) 2016.06.22
gcc dependency .d 파일?  (0) 2016.03.28
Posted by 구차니

댓글을 달아 주세요

프로그램 사용/gcc2016. 11. 17. 17:43

-D 는 아는데..

-DFLAG=1 이런식으로 쓰는걸 몰라서 검색 ㅠㅠ


-D name

Predefine name as a macro, with definition 1. 

-D name=definition

The contents of definition are tokenized and processed as if they appeared during translation phase three in a ‘#define’ directive. In particular, the definition will be truncated by embedded newline characters.

If you are invoking the preprocessor from a shell or shell-like program you may need to use the shell's quoting syntax to protect characters such as spaces that have a meaning in the shell syntax.


If you wish to define a function-like macro on the command line, write its argument list with surrounding parentheses before the equals sign (if any). Parentheses are meaningful to most shells, so you will need to quote the option. With sh and csh, -D'name(args...)=definition' works.


-D and -U options are processed in the order they are given on the command line. All -imacros file and -include file options are processed after all -D and -U options.  

[링크 : https://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html]

[링크 : https://wiki.openssl.org/index.php/Manual:OPENSSL_VERSION_NUMBER(3)]

'프로그램 사용 > gcc' 카테고리의 다른 글

gcc cpp type (유니코드 문자열)  (0) 2017.04.04
gcc 매크로 확장 define stringfication  (0) 2017.01.02
gcc make CFLAGS=-D 관련  (0) 2016.11.17
gcc -fPIC  (0) 2016.06.22
gcc dependency .d 파일?  (0) 2016.03.28
gcc -p -pg  (0) 2016.02.25
Posted by 구차니

댓글을 달아 주세요