提问人:mada 提问时间:10/26/2021 最后编辑:mada 更新时间:10/26/2021 访问量:218
如何在 Windows 上将标准 C++ 库与 g++ 链接?
How I can link standard C++ libraries with g++ on Windows?
问:
我只是有一个简单的结构:
main.cpp
#include <iostream>
#include "../header_files/h.h"
int main(void)
{
f();
g();
}
src1.cpp
#include <iostream>
void f() { std::cout << "f()" << std::endl; };
void g() { std::cout << "g()" << std::endl; };
第 6 节
void f(); void g();
我正在尝试(仅)编译并使用:main.cpp
src1.cpp
PS> g++ -c main.cpp src.cpp
然后从创建的文件中获取可执行文件:.obj
PS> g++ main.o src.o -o exec.exe
.\ss.o:ss.cpp:(.text+0x17): undefined reference to std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
\ss.o:ss.cpp:(.text+0x26): undefined reference to std::ostream::operator<<(std::ostream& (*)(std::ostream&))
\ss.o:ss.cpp:(.text+0x41): undefined reference to std::ios_base::Init::~Init()
\ss.o:ss.cpp:(.text+0x71): undefined reference to std::ios_base::Init::Init()
在这里,我收到一个冗长的链接器错误;那是因为我使用的是iostream库;我只需要告诉 g++ 如何链接到这个库或我想使用的任何其他标准库。我该怎么做?
实际上,我可以使用,或者使用任何IDE,但我不需要这样做。只需要一种方法来告诉 g++(可能通过命令行参数)如何进入实际定义。我需要从生成的文件生成文件,而不是其他东西。g++ main.cpp src1.cpp -o test
.exe
obj
- 视窗:x64
- g++ 版本:x86_64-8.1.0-posix-she-rt_v6-rev0 (mingw64)
- 不使用任何 IDE
答: 暂无答案
评论
PS> gcc main.o src.o -o exec.exe
#include