Telling gcc directly to link a library statically

Use -l: instead of -l. For example -l:libXYZ.a to link with libXYZ.a. Notice the lib and .a are written out, as opposed to -lXYZ which would auto-expand to libXYZ.so/libXYZ.a. It is an option of the GNU ld linker: -l namespec … If namespec is of the form :filename, ld will search the library path for a file called filename, otherwise it will search the library path for a file called libnamespec.a. … on ELF … systems, ld will search a directory … Read more

gcc: undefined reference to

However, avpicture_get_size is defined. No, as the header (<libavcodec/avcodec.h>) just declares it. The definition is in the library itself. So you might like to add the linker option to link libavcodec when invoking gcc: Please also note that libraries need to be specified on the command line after the files needing them: Not like this: Referring to Wyzard‘s comment, the complete command might look like … Read more

Multiple definition of … linker error

Don’t define variables in headers. Put declarations in header and definitions in one of the .c files. In config.h In some .c file: If you put a definition of a global variable in a header file, then this definition will go to every .c file that includes this header, and you will get multiple definition … Read more

Why does fatal error “LNK1104: cannot open file ‘C:\Program.obj'” occur when I compile a C++ project in Visual Studio?

This particular issue is caused by specifying a dependency to a lib file that had spaces in its path. The path needs to be surrounded by quotes for the project to compile correctly. On the Configuration Properties -> Linker -> Input tab of the project’s properties, there is an Additional Dependencies property. This issue was fixed by adding the … Read more

C: linker command failed with exit code 1

You have the following line of code: Inside the main function. There are 2 major problems with this. Function declarations cannot appear inside of another function. The line I quoted needs to appear outside of your main function as follows:int lookup(…..) //code here int main(…) { //more code here } Even though you declare the … Read more