这是关于C++程序分发的一个非常基本的问题。假设我有以下程序C++分布程序依赖关系
#include "v8.h"
#include <SDL.h>
int main (int argc, char** argv)
{
// [AWSOME STUFF!]
return 0;
}
这取决于谷歌的V8和SDL2。在我的Mac,我已经安装了这两个库,我能成功编译这样的程序:
clang++ -std=c++11 -I/usr/local/include -I/Library/Frameworks/SDL2.framework/Headers myprogram.cpp
要链接库,我可以这样做:
clang++ -F/Library/Frameworks -framework SDL2 -lv8 myprogram.o -o program
如果我正确理解它,它在我的电脑上工作,因为这些库是动态链接的。如果我想将它分发给可能没有安装它们的其他人?我如何静态编译它们以便在二进制文件中包含下划线?或者我如何动态链接它们,但是使用软件分发库?
你似乎没有链接到图书馆。你只有包含。你在哪里打电话给图书馆的功能? –