我試圖編譯與海灣合作委員會的Ubuntu可以編碼生成靜態二進制和我想要運行的代碼作爲獨立的一個,這是編譯:爲什麼不能用GCC
$ gcc -static-libstdc++ main.c -o Server1 `mysql_config --cflags --libs` -lssl -lcrypto -lm -L /user-L/usr/lib/x86_64-linux-gnu
然後覈實輸出ID它是靜態還是不是我運行下面的命令:
$ ldd Server1
導致下面的輸出:
linux-vdso.so.1 => (0x00007ffce75e0000)
libmysqlclient.so.20 => /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20 (0x00007fbd8662f000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbd86412000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fbd86209000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007fbd85fa0000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fbd85b45000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbd8577b000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fbd85561000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbd8535d000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fbd84fda000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbd84cd1000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fbd84abb000)
/lib64/ld-linux-x86-64.so.2 (0x00005584efccf000)
$
那麼爲什麼上面的lib不包含在Server1 Binary文件中?
種類
你嘗試過傳遞'-static'嗎? – marcolz
非常感謝!非常感謝! – user6588952