问题描述
我有以下 lua 脚本来编译并链接到我的项目 FreeType 库:
project "freetype"
kind "StaticLib"
language "C"
staticruntime "on"
warnings "off"
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")
files
{
"src/autofit/autofit.c","src/bdf/bdf.c","src/cff/cff.c","src/base/ftbase.c","src/base/ftbitmap.c","src/cache/ftcache.c","src/base/ftfstype.c","src/base/ftgasp.c","src/base/ftglyph.c","src/gzip/ftgzip.c","src/base/ftinit.c","src/lzw/ftlzw.c","src/base/ftstroke.c","src/base/ftsystem.c","src/smooth/smooth.c","src/base/ftbBox.c","src/base/ftmm.c","src/base/ftpfr.c","src/base/ftsynth.c","src/base/fttype1.c","src/base/ftwinfnt.c","src/base/ftlcdfil.c","src/base/ftgxval.c","src/base/ftotval.c","src/base/ftpatent.c","src/pcf/pcf.c","src/pfr/pfr.c","src/psaux/psaux.c","src/pshinter/pshinter.c","src/psnames/psmodule.c","src/raster/raster.c","src/sfnt/sfnt.c","src/truetype/truetype.c","src/type1/type1.c","src/cid/type1cid.c","src/type42/type42.c","src/winfonts/winfnt.c","src/sdf/**.h","src/sdf/**.c","include/ft2build.h","include/freetype/config/ftconfig.h"
}
includedirs
{
"include"
}
defines
{
"_CRT_SECURE_NO_WARNINGS","_LIB","FT2_BUILD_LIBRARY"
}
filter "system:windows"
systemversion "latest"
files
{
"builds/windows/ftdebug.c"
}
filter "configurations:Debug"
runtime "Debug"
symbols "on"
filter "configurations:Release"
runtime "Release"
optimize "on"
一切都编译得很好(FreeType也是如此)但是当需要链接编译器时会产生以下输出:
usr/bin/ld: vendor/freetype/bin/Debug-linux-x86_64/freetype/libfreetype.a(sdf.o):(.data.rel.ro.local+0x40): multiple deFinition of `ft_sdf_renderer_class'; vendor/freetype/bin/Debug-linux-x86_64/freetype/libfreetype.a(ftsdfrend.o):(.data.rel.ro+0x0): first defined here
/usr/bin/ld: vendor/freetype/bin/Debug-linux-x86_64/freetype/libfreetype.a(sdf.o):(.data.rel.ro.local+0xc0): multiple deFinition of `ft_bitmap_sdf_renderer_class'; vendor/freetype/bin/Debug-linux-x86_64/freetype/libfreetype.a(ftsdfrend.o):(.data.rel.ro+0x80): first defined here
/usr/bin/ld: vendor/freetype/bin/Debug-linux-x86_64/freetype/libfreetype.a(smooth.o): in function `gray_convert_glyph_inner':
/home/laptok/Desktop/Snake/Snake/vendor/freetype/src/smooth/ftgrays.c:1609: undefined reference to `FT_Trace_disable'
/usr/bin/ld: /home/laptok/Desktop/Snake/Snake/vendor/freetype/src/smooth/ftgrays.c:1612: undefined reference to `FT_Trace_Enable'
/usr/bin/ld: ../bin/Debug-linux-x86_64/Snake/Snake: hidden symbol `FT_Trace_Enable' isn't defined
/usr/bin/ld: final link Failed: bad value
collect2: error: ld returned 1 exit status
这个 lua 脚本适用于 Visual Studio 2019 项目生成(它仍然产生类似的输出,但它链接)但它不适用于 Linux。如何修复我的脚本?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)