ld:framework 未找到 sfml
ld:framework not found sfml
我将框架的内容从 SFML 复制到 ~/Library/Frameworks 并尝试 运行 SFML 中的第一个教程示例。
我在 g++ 中使用了它:
g++ -o sfml-test.cpp -framework SFML -lsfml-window
并得到这个错误:
ld: framework not found SFML
如有任何帮助,我们将不胜感激。
首先,教程指定/Library/Frameworks
,不是~/Library/Frameworks
。 ~
指向用户主目录 (/Users/name/
),而 /
指向文件系统的最低点。
还有despite the documentation,/Library/Frameworks
不是标准的框架目录,所以你必须在搜索路径中设置它。您可以通过 运行 gcc -Xlinker -v
查看标准框架目录:
@(#)PROGRAM:ld PROJECT:ld64-409.12
BUILD 17:47:51 Sep 25 2018
configured to support archs: armv6 armv7 armv7s arm64 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em arm64e arm64_32
Library search paths:
/usr/local/lib
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib
Framework search paths:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
请注意 Framework search paths
部分,它不包括 /Library/Frameworks
。
要将/Library/Frameworks
添加到搜索路径,用-F/Library/Frameworks
编译,link用-F/Library/Frameworks -framework SFML -framework sfml-x
编译,x为system
,window
, graphics
, audio
或 network
.
此外,-o
选项指定了输出文件名。您的命令将不接受任何输入文件并输出可执行文件 sfml-test.cpp
,因此使用 -o sfml-test sfml-test.cpp
将 sfml-test.cpp
作为输入,并输出 sfml-test
.
你的命令是:
g++ -o sfml-test sfml-test.cpp -F/Library/Frameworks -framework SFML -framework sfml-window
我将框架的内容从 SFML 复制到 ~/Library/Frameworks 并尝试 运行 SFML 中的第一个教程示例。 我在 g++ 中使用了它:
g++ -o sfml-test.cpp -framework SFML -lsfml-window
并得到这个错误:
ld: framework not found SFML
如有任何帮助,我们将不胜感激。
首先,教程指定/Library/Frameworks
,不是~/Library/Frameworks
。 ~
指向用户主目录 (/Users/name/
),而 /
指向文件系统的最低点。
还有despite the documentation,/Library/Frameworks
不是标准的框架目录,所以你必须在搜索路径中设置它。您可以通过 运行 gcc -Xlinker -v
查看标准框架目录:
@(#)PROGRAM:ld PROJECT:ld64-409.12
BUILD 17:47:51 Sep 25 2018
configured to support archs: armv6 armv7 armv7s arm64 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em arm64e arm64_32
Library search paths:
/usr/local/lib
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib
Framework search paths:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
请注意 Framework search paths
部分,它不包括 /Library/Frameworks
。
要将/Library/Frameworks
添加到搜索路径,用-F/Library/Frameworks
编译,link用-F/Library/Frameworks -framework SFML -framework sfml-x
编译,x为system
,window
, graphics
, audio
或 network
.
此外,-o
选项指定了输出文件名。您的命令将不接受任何输入文件并输出可执行文件 sfml-test.cpp
,因此使用 -o sfml-test sfml-test.cpp
将 sfml-test.cpp
作为输入,并输出 sfml-test
.
你的命令是:
g++ -o sfml-test sfml-test.cpp -F/Library/Frameworks -framework SFML -framework sfml-window