C++ 如何在忽略链接顺序的情况下链接源?

C++ 如何在忽略链接顺序的情况下链接源?,c++,linker,C++,Linker,我试着重新创建几天前做的一个小测试,虽然代码与当时不一样,但工作方式类似。我知道链接器是如何工作的,它会忽略所有在开始链接文件时未使用的内容。所以我有test.cpp、test2.cpp、test.h、test2.h和main.cpp 测试h #ifndef TEST_H #define TEST_H void Test(void); void TestTestTest(void); #endif /* TEST_H */ test2.h #ifndef TEST2_H #define T

我试着重新创建几天前做的一个小测试,虽然代码与当时不一样,但工作方式类似。我知道链接器是如何工作的,它会忽略所有在开始链接文件时未使用的内容。所以我有test.cpp、test2.cpp、test.h、test2.h和main.cpp

测试h

#ifndef TEST_H
#define TEST_H

void Test(void);
void TestTestTest(void);

#endif /* TEST_H */
test2.h

#ifndef TEST2_H
#define TEST2_H

void TestTest(void);

#endif /* TEST2_H */
test.cpp

#include <test.h>
#include <test2.h>
#include <iostream>

void Test(void)
{
    std::cout << "Test" << std::endl;
}

void TestTestTest(void)
{
    TestTest();
    std::cout << "TestTestTest" << std::endl;
}
#包括
#包括
#包括
无效测试(无效)
{
std::cout尝试使用属性:

__declspec(dllexport)
在Windows中使用您想要使用的每个函数创建共享库时

例如test.h:

#ifndef TEST_H
#define TEST_H

void __declspec(dllexport) Test(void);
void __declspec(dllexport) TestTestTest(void);

#endif /* TEST_H */

请参见。

请参见,谢谢,这确实帮了我的忙。我不知道我可以多次使用库,我一直认为,会出现错误,因为该函数将被定义多次。但显然,情况并非如此。
__declspec(dllexport)
#ifndef TEST_H
#define TEST_H

void __declspec(dllexport) Test(void);
void __declspec(dllexport) TestTestTest(void);

#endif /* TEST_H */