我有一个静态库,我用 gcc 编译,没有 c99 模式。我正在尝试使用 gcc -std=c99 在编译中链接它。这给了我一个错误:
undefined reference to 'functionName'
这里,functionName 是静态库中的函数。
这是我的编译:
gcc -std=c99 -g -I../ -Llib/ -lmylib test.c ../file1.c ../file2.c -o test
我在这里使用 C99 是因为我在 test.c 中的代码 #includes 头文件的实现使用了 C99 标准。
静态库(lib/libmylib.a)未使用 c99 标准编译,因为它的代码使用了一些无法在 C99 模式下编译的库(但编译时没有 c99 标志)。
我还尝试在 gcc -std=c99 之后立即将 -L & -l 标志的顺序更改为末尾 & 但它给出了相同的“未定义引用”错误。
我如何将这些链接在一起?
谢谢你。
编辑:我提到的函数functionName
是此处显示的 setupStacktrace() 的化名:http: //pastebin.com/2RbEEPaj。这是签名是void setupStacktrace();