我是托管c ++,cmake的新手,需要一些帮助才能实现这一目标。
我正在开发两个托管/ c ++库; A和B,想要第二个库 使用第一个。
无论我尝试什么,我得到: MyClassB.cpp.obj:错误LNK2020:未解析的令牌(06000001)MyClassA ::。ctor
示例托管代码:
public ref class MyClassA
{
public:
MyClassA();
~MyClassA();
};
示例cmake文件,库A
string(REPLACE "/RTC1" " " CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /clr /EHa /MDd /GS")
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /clr /EHa /MD /GS")
add_library(MyClassA MODULE MyClassA.cpp)
示例cmake文件,库B
Similar to the one for library A, with this addition:
add_library(MyClassA MODULE IMPORTED)
If I uncomment the next line:
#target_link_libraries(MyClassB MyClassA)
I get this error:
Target "KM.Library.Types.Managedd" of type MODULE_LIBRARY may not be linked
into another target. One may link only to STATIC or SHARED libraries, ...
上面的代码不是真正的代码,我找不到附加文件的方法: - (
无论如何,任务很简单我有两个托管/ c ++库和 想要将一个链接到另一个。链接步骤失败。
如果我在库A,EXPORTS / SYMBOLS部分上尝试dumpbin,还有一件事 是空的,这是对的吗?
此致
即使
答案 0 :(得分:0)
似乎使用/ FU标志来解决问题