ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
ilia@debianIL:~/c-class/source/mmn/12/q2$ make
gcc -g -Wall -lm -o q2 main.c complex.c
main.c: In function ‘read_comp’:
main.c:16: warning: implicit declaration of function ‘read_comp1’
Does anyone know what is my mistake ? :\
thnx alot !
"complex.h" is a system include file, so, for starters, rename your file into something else.
You might also want to use "" rather than <> around the name of your file.
I don't recall the exact search rules for include files, but in normal use, one sets up the search rules so that system wide header files are found when you use <> and your own header files are found when you use "".
To complete johnsfine's explanation:
when you surround your header files with < and > it means that gcc will look into the system headers (/usr/include on GNU/linux), and on any path you provide to him with the -I option
when you surround your header files with double quotes, you must provide the complete header relative path in regard to the source file where you're making the #include.
when you surround your header files with double quotes, you must provide the complete header relative path in regard to the source file where you're making the #include.
If I understand you correctly (relative path needed in the text given to #include) that is not true.
I haven't bothered this time to dig through the doc's, but I know from common usage that include directories can be given on the command line that will apply to #include lines using "". The important difference is that some places it searches for #include <> files automatically (with no command line switch needed) are not searched for #include "" files. The difference between <> and "" should also help anyone reading your code know whether you intended some system header file vs. some header file inside your own project.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.