作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 Ubuntu 上使用 Eclipse 来编写/编译/运行 C 代码。我正在尝试构建我的项目。以下是 Eclipse 控制台中的输出。
22:18:31 **** Build of configuration Debug for project Project1 ****
make all
Building file: ../project1.c
Invoking: GCC C Compiler
gcc -I/lib/i386-linux-gnu -O0 -g3 -Wall -c -fmessage-length=0 -pthread -lm -MMD -MP -MF"project1.d" -MT"project1.d" -o "project1.o" "../project1.c"
../project1.c: In function ‘main’:
../project1.c:146:6: warning: unused variable ‘this_thread_id’ [-Wunused-variable]
../project1.c: In function ‘_pre_init’:
../project1.c:126:1: warning: control reaches end of non-void function [-Wreturn-type]
Finished building: ../project1.c
Building file: ../scheduler.c
Invoking: GCC C Compiler
gcc -I/lib/i386-linux-gnu -O0 -g3 -Wall -c -fmessage-length=0 -pthread -lm -MMD -MP -MF"scheduler.d" -MT"scheduler.d" -o "scheduler.o" "../scheduler.c"
Finished building: ../scheduler.c
Building target: Project1
Invoking: GCC C Linker
gcc -L/lib/i386-linux-gnu -lm -pthread -o "Project1" ./project1.o ./scheduler.o
./project1.o: In function `advance_global_time':
/home/akshay/Cworkspace/Project1/Debug/../project1.c:50: undefined reference to `floor'
collect2: ld returned 1 exit status
make: *** [Project1] Error 1
谁能帮我弄清楚问题是什么以及如何解决?
最佳答案
您需要在目标文件之后链接库。
你有:
gcc -L/lib/i386-linux-gnu -lm -pthread -o "Project1" ./project1.o ./scheduler.o
你需要:
gcc -L/lib/i386-linux-gnu -pthread -o "Project1" ./project1.o ./scheduler.o -lm
链接器的工作方式似乎发生了变化——在某些时候,可以在目标文件之前指定共享库(例如数学库),并且一切都会起作用。然而,如今,如果共享库在扫描时不满足任何符号,则链接过程将被忽略。确保在库修复此问题之前列出目标文件。
另见 Undefined reference to 'pthread_create' ;同样的问题,同样的解决方案。我怀疑这是否是 SO 中唯一的此类问题。
关于C: 未定义的楼层引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14743023/
我有一些地址数据需要解析。除楼层数据外,大多数地址信息都以适合我的方式提供。 对于以不同方式获取的楼层数据,我可能会得到以下格式: “大街 123 号 2 楼”或“大街 123 号 2 楼” 如果我使
我正在使用processing java 库使用牛顿物理学模拟球在两堵墙之间弹跳;水平速度是一个常数,因为没有加速度。我让模拟正常工作,但我想指定地板的高度。然而,在我的方程中,当我尝试在球距离屏幕底
我正在尝试在我的苹果应用程序中显示楼层。我知道在苹果 map 中有一些选定的地方,如机场或购物中心,可以看到这个楼层。我需要做到这一点。只需要显示可用的楼层。正如你在图片中看到的,在图像的右侧有5F,
我是一名优秀的程序员,十分优秀!