提问者:小点点

从WSL构建linux应用程序失败,错误为:文件格式无法识别;将其视为链接器脚本


我正在尝试构建一个在Ubuntu中开发的应用程序。我需要在应用程序中做一些更改。我没有ubuntu机器,想要避免虚拟盒子路线。我想到了使用WSL从Windows机器构建应用程序。编译成功,但在链接器步骤失败(由于符号链接)。

/usr/bin/ld:/mnt/d/Agent/poco/bin/linux/x64/libPocoDataSQLite.so: file format not recognized; treating as linker script
/usr/bin/ld:/mnt/d/Agent/poco/bin/linux/x64/libPocoDataSQLite.so:0: syntax error
collect2: error: ld returned 1 exit status

so符号链接和libpocodatasqlite.so.51实际共享库都存在于路径中。任何指向解决方案的指针都是可察觉的。

我不确定https://github.com/microsoft/wsl/issues/5118是否是同一个问题。


共1个答案

匿名用户

不确定这是否正确,但您的库文件似乎在Windows NTFS或FAT文件系统上。因此,符号链接可能被区别对待,并作为它自己的内容来阅读,而不是它应该指向的文件的内容。我建议尝试将这些库放在Linux FS上的某个地方,比如/home/youruser下面(但不要只是复制,因为内容已经不正确,可以从源代码中构建,也可以从原始存档中提取),然后正确地重新创建所有符号链接,然后再试一次。

相关问题