调用内联函数时未定义引用

电脑杂谈  发布时间:2020-03-31 20:19:37  来源:网络整理

函数调用 内联函数_messagebeep 函数怎么调用 易语言_函数递归调用一

我从带有内置功能的GCC 4.8.1中收到一个非常奇怪的错误.

messagebeep 函数怎么调用 易语言_函数递归调用一_函数调用 内联函数

我已经在src / include /的头文件中定义了两个几乎相同的内联函数(debug.h和error.h)函数调用 内联函数函数调用 内联函数,唯一的区别是它们打印的内容-前缀DEBUG: 另一个%s: error: %s (程序名称,错误消息). 内联定义函数并编译调试版本时(因此它将宏DEBUG设置为1),我收到很多未定义的引用错误:

函数调用 内联函数_messagebeep 函数怎么调用 易语言_函数递归调用一

src/main_debug.o
  gcc -osrc/main_debug.o src/main.c -c -Wall -Wextra -Wpedantic -std=gnu11 -march=native -Og -g -DCC="\"gcc\"" -DCFLAGS="\"-Wall -Wextra -Wpedantic -std=gnu11 -march=native -Og -g\"" -DDEBUG=1 -DBTCWATCH_VERSION="\"0.0.1\""
src/lib/btcapi_debug.o
  gcc -osrc/lib/btcapi_debug.o src/lib/btcapi.c -c -Wall -Wextra -Wpedantic -std=gnu11 -march=native -Og -g -DCC="\"gcc\"" -DCFLAGS="\"-Wall -Wextra -Wpedantic -std=gnu11 -march=native -Og -g\"" -DDEBUG=1
src/lib/libbtcapi_debug.a
  ar rc src/lib/libbtcapi_debug.a src/lib/btcapi_debug.o
  ranlib src/lib/libbtcapi_debug.a
src/lib/cmdlineutils_debug.o
  gcc -o src/lib/cmdlineutils_debug.o src/lib/cmdlineutils.c -c -Wall -Wextra -Wpedantic -std=gnu11 -march=native -Og -g -DCC="\"gcc\"" -DCFLAGS="\"-Wall -Wextra -Wpedantic -std=gnu11 -march=native -Og -g\"" -DDEBUG=1
src/lib/libcmdlineutils_debug.a
  ar rc src/lib/libcmdlineutils_debug.a src/lib/cmdlineutils_debug.o
  ranlib src/lib/libcmdlineutils_debug.a
debug
  gcc -obtcwatch-debug src/main_debug.o -Lsrc/lib/ -lbtcapi_debug -lcmdlineutils_debug -lcurl  -ljansson 
src/main_debug.o: In function `main':
/home/marcoms/btcwatch/src/main.c:148: undefined reference to `debug'
src/main_debug.o:/home/marcoms/btcwatch/src/main.c:185: more undefined references to `debug' follow
collect2: error: ld returned 1 exit status
make: *** [debug] Error 1

函数递归调用一_messagebeep 函数怎么调用 易语言_函数调用 内联函数

但是将debug()的定义更改为静态内联将消除该错误. 但是我从来没有收到error()的定义,即使它的定义是内联的,而不是静态内联的.

函数调用 内联函数_messagebeep 函数怎么调用 易语言_函数递归调用一

这些定义在标题中(即不是原型)

因此,请使用-std = gnu11启用C99而不是GNU内联语义.

这意味着内联,静态内联和外部内联的行为均不同. 特别是,inline希望在单独的翻译单元中提供外部定义(您可以提供没有重复定义的外部定义,请参见).


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-159253-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...