我正在尝试使用Eclipse中的libxml2编译C程序。看起来我的代码没有问题,但是在构建项目时会出现错误。
错误输出位于此屏幕截图中:https://drive.google.com/file/d/0BwV-0_2diIaaQlZHM2Fwa2R0LWc/edit
在此错误之前,我有一个“未定义的引用”错误,但这是因为我忘记链接库libxml2。现在这是截图中的问题。我不该做什么。
[EDITED]
我解决了我的问题,我只需要将-nostartfiles
放在链接器标志中。
答案 0 :(得分:0)
我解决了我的问题我只需要在Linker Flags框中编写-nostartfiles:D 要查找“链接标记”框,请转到“您的项目”>属性> C / C ++ Build>设置> GCC C链接器>其它
就是这样。
感谢您的帮助。
答案 1 :(得分:0)
我不认为您的解决方案是可以接受的,我认为当您的项目在其他环境中执行时会导致同样的问题(另一个eclipse配置,从控制台运行它等) 当您在项目中多次定义相同的函数时会发生该错误,我敢打赌,因为您已经定义了与库中已有的相同的函数。
例如,如果我有一个名为hello()的函数的lib1.h,然后在main.c中编写相同的函数(链接了该库),则会出现问题。 事实上,在你的图像中,我可以看到“__data_start的多重定义”
所以我认为你只需要更改有问题的功能名称,它就会被修复。
此外,如果您在程序中多次包含相同的库,则会导致此问题,但可以使用预处理器解决此问题(如果您对此感兴趣,可以使用google,因为它会偏离主题并且让我的答案太长了)