gcc notes

来源:互联网 发布:听歌学英语软件 编辑:程序博客网 时间:2024/05/07 17:35

LD_LIBRARY_PATH is used for program running, LIBRARY_PATH is used for gcc when building.

View gcc include path:

gcc -E -v -

Variables Used by Implicit Rules

  • 10.3 Variables Used by Implicit Rules

about libraries

Libraries should be assigned in LDLIBS, note, LOADLIBES is deprecated. Also he order of the libraries linked is important.

As the linker processes each module (be it a library or a object file), it attempts to resolve each undefined symbol while potentially adding to its list of undefined symbols. When it gets to the of the list of modules, it either has resolved all undefined symbols and is successful or it reports undefined symbols.

-

The linker will search an archive only once, at the location where it is specified on the command line. If the archive defines a symbol which was undefined in some object which appeared before the archive on the command line, the linker will include the appropriate file(s) from the archive. However, an undefined symbol in an object appearing later on the command line will not cause the linker to search the archive again.

  • Why does the order in which libraries are linked sometimes cause errors in GCC?
  • Libraries (-lfoo) should be added to the LDLIBS variable not LDFLAGS. Non-library linker flags, such as -L, should go in the LDFLAGS variable.
0 0
原创粉丝点击