我正在用C编写程序。我收到错误:
file_name.c:(.text+0x5d): undefined reference to `pthread_create'
当gcc将我的file_name.o与我的主ADA文件链接时,会出现此特定错误。
对于C文件的实际编译,我尝试过使用两者:
gcc -c -pthread file_name.c
以及:
gcc -c file_name.c -lpthread
这些似乎都不起作用。有什么想法吗?
更新
我没有意识到的一点是,在组合C和ADA时,使用gnatmake
时会包含C库。
使用以下方法解决了问题:
gnatmake ada_file.adb -o -largs c_file.o -lpthread
答案 0 :(得分:4)
如果您使用-c
切换,则表示您没有链接代码。您只是将其编译为目标文件。在这个阶段指定库是没有意义的。您的-l
参数会被忽略 - 当-c
出现时,它没有任何效果,也没有任何意义。
库应该在链接时提供,即当您将目标文件合并到最终可执行文件时(当然没有-c
)。您没有向我们展示该命令行。该关联行正好是您必须添加-lpthread
参数的位置。