使用 SFML 时未定义的引用
undefined reference when using SFML
我正在尝试使用 SFML 库编译程序
我的来源是这样的:
//main.cpp
#include <SFML/Graphics.hpp>
int main(){
sf::Color c;
}
我是这样编译的
g++ -IC:/dev/include -c main.cpp
并像这样链接
g++ -LC:/dev/lib -lsfml-system -lsfml-window -lsfml-graphics -lsfml-audio -lsfml-network main.o -o main.exe
链接时出现此错误:
main.o:main.cpp:(.text+0x1e): undefined reference to '__imp__ZN2sf5ColorC1Ev'
我做错了什么?
我使用 gcc 6.1 和 cmake
自己编译了 SFML 二进制文件
尝试像这样编写你的命令,指定库在 输入:
g++ -o main.exe main.o -LC:/dev/lib -lsfml-system -lsfml-window -lsfml-graphics -lsfml-audio -lsfml-network
链接参数的顺序很重要,因为链接器将按顺序处理输入。对于每个项目,它将使用从当前项目导出的符号填充现有的未定义符号列表,然后使用当前项目中未定义的符号填充该列表。因此,当 main.o
是最后一个未定义符号列表时,包含 main.o
所需的所有内容,但没有更多的项目(库)来填充那些缺失的符号。请注意,这意味着库的顺序也很重要,因此更多 "generic" 库应保持在靠近列表末尾的位置。
我正在尝试使用 SFML 库编译程序
我的来源是这样的:
//main.cpp
#include <SFML/Graphics.hpp>
int main(){
sf::Color c;
}
我是这样编译的
g++ -IC:/dev/include -c main.cpp
并像这样链接
g++ -LC:/dev/lib -lsfml-system -lsfml-window -lsfml-graphics -lsfml-audio -lsfml-network main.o -o main.exe
链接时出现此错误:
main.o:main.cpp:(.text+0x1e): undefined reference to '__imp__ZN2sf5ColorC1Ev'
我做错了什么?
我使用 gcc 6.1 和 cmake
尝试像这样编写你的命令,指定库在 输入:
g++ -o main.exe main.o -LC:/dev/lib -lsfml-system -lsfml-window -lsfml-graphics -lsfml-audio -lsfml-network
链接参数的顺序很重要,因为链接器将按顺序处理输入。对于每个项目,它将使用从当前项目导出的符号填充现有的未定义符号列表,然后使用当前项目中未定义的符号填充该列表。因此,当 main.o
是最后一个未定义符号列表时,包含 main.o
所需的所有内容,但没有更多的项目(库)来填充那些缺失的符号。请注意,这意味着库的顺序也很重要,因此更多 "generic" 库应保持在靠近列表末尾的位置。