小编Jak*_*keD的帖子

将静态库与dll链接的正确方法

我的项目通过几个静态库构建,这些库应该链接到主dll库,因此获得一个单独的dll.

使用__declspec(dllexport)属性不会导致静态库的指定函数出现到dll,库根本没有与dll链接.

然后我尝试将每个库构建为共享以获取导出函数的正确名称,并基于它们创建.def文件.使用.def文件导致结果.

  1. 应该__declspec(dllexport).def-file我的情况一样行事吗?

  2. 是否可以从源生成.def文件?由于我有C++代码,因为API中的修改和存在类,我不能自己编写.def文件,上面描述的临时生成的dll方法与生产不一致.

更新

我想详细解释一下我项目的结构.该解决方案包含一些项目(模块).

+ 
|    
+-+ static_lib1                                          
|       +                                                
|       +--+ src                                         
|                                                        
+-+ static_lib2                                          
|       +                                                
|       +--+ src                                         
|                                                        
+-+ dynamic_lib (linked with static_lib1 and static_lib2)
        +                                                
        +--+ src
Run Code Online (Sandbox Code Playgroud)

每个子项目都弱于其他子项目,让我们假设它们之间没有联系是为了清晰.每个模块都有自己的公共接口.我想将所有模块作为单个动态库,所以我的工件是dynamic_lib.dll,但实际上静态库没有与它链接.

c++ dll visual-c++ declspec visual-studio-2013

12
推荐指数
2
解决办法
2万
查看次数

是否可以使用终端在Vim/Vi中拆分窗口?

有没有办法在Vi/Vim内部拆分窗口,以便一个窗口成为终端?

PS解决方案,如安装新的文本编辑器等,对我没有帮助.

vi vim

10
推荐指数
4
解决办法
9918
查看次数

使用Git/PyCharm维护Lite项目的精简版和专业版

背景

我正在结束一个python项目,我正在考虑用pro/lite版本发布它.当然,我不希望重复的代码存在,但我不能发布一个免费版本,其中许多专业版的功能仅在几个if检查时被禁用:代码用于Blender附加组件,因此如果功能仍然存在,将很容易编辑并转换为专业版.

使用Git/Pycharm维护这样的项目的最佳方法是什么(或者我最好不要担心精简版)没有重复的代码我已经读过使用多个Git分支不是要走的路.

放弃

我确实意识到关于这个话题有很多类似的问题.然而,其中许多涉及使用Xcode,而且还有更多没有明确的答案.不要误会我的意思,我知道我可以通过多种方式做到这一点 - 但我正在寻找最好的方式,最干净的方式.

python git code-duplication pycharm

5
推荐指数
1
解决办法
106
查看次数

像文件资源管理器一样使用 Python Shutil 压缩文件

背景

我正在尝试使用 python Shutil 压缩目录,如下所示:

shutil.make_archive("~/Desktop/zipfile", 'zip', "~/Documents/foldertozip")
Run Code Online (Sandbox Code Playgroud)

但结果仅压缩“foldertozip”内的文件。例如,

foldertozip
    -- file1
    -- file2
zipfile.zip
    -- file1
    -- file2
Run Code Online (Sandbox Code Playgroud)

另一方面,如果我从 Windows 文件资源管理器或 mac finder 中压缩它,我会得到以下信息:

foldertozip
    -- file1
    -- file2
zipfile.zip
    -- foldertozip
        -- file1
        -- file2
Run Code Online (Sandbox Code Playgroud)

问题

如何使用 Shutil 执行与文件资源管理器相同的操作并包含基本目录?我知道我可以将“foldertozip”复制到具有相同名称的文件夹,然后压缩该文件夹,但如果可能的话,我更喜欢更干净的解决方案。

python directory zip shutil

3
推荐指数
1
解决办法
8358
查看次数