About inconsistent dll linkage

前端 未结 7 774
遥遥无期
遥遥无期 2020-12-29 01:25

How can I remove this link warning? You can see code segment that causes this warning.

static AFX_EXTENSION_MODULE GuiCtrlsDLL = { NULL, NULL };
//bla bla
//         


        
7条回答
  •  庸人自扰
    2020-12-29 02:03

    [ CMake inconsistent dll linkage ]

    I encountered the following issue + solution with the __declspec(dllexport) + __declspec(dllimport) :

    # # #CMakeLists.txt
    add_defintions(-DMYLIB=1)
    # The above was the solution...
    #    (MYLIB is used in the standard ifdef + define MYLIB_EXPORT syntax)
    #  Below: seems to get overruled by other directory's headers: 
    set_source_files_properties(  file1.h  file2.h  COMPILE_FLAGS "-DMYLIB=1") 
    

    This was annoying because a number of sources say to use the 'set source file properties' command to get better granularity but the doc is not clear on what happens to file1.h's declares when included from a different directory... better stick with add_definitions( -DMYLIB=1 ) for now!

    To catch this problem: in your Foo.cpp file:

    #include "export.h"
    #if defined(MYLIB)
    #if defined(OTHERLIB)
      static_assert(0,"error, check your definitions!");
      // OTHER depends on MY; can't have both of these flags being set!
    #endif
    #endif
    struct  OTHER_EXPORT  foo 
    { 
    };
    

提交回复
热议问题