Static linking of CuBLAS in CUDA-10.1

I would like to use the following command in order to use static cublas in cuda 10.1.168 in my program, but it fails with some undefined references as below

$ nvcc foo.cu -o foo \
     --cudart shared \
     -lculibos \
     -lcublas_static \
     -lcurand_static \
     -ldl -lpthread

cublas.compute_75.cudafe1.cpp:(.text+0x34b): undefined reference to `cublasLtCtxInit'
cublas.compute_75.cudafe1.cpp:(.text+0x417): undefined reference to `init_gemm_select'
/home/mahmood/cuda_10.1.168/bin/../targets/x86_64-linux/lib/libcublas_static.a(cublas.o): In function `cublasGetProperty':
cublas.compute_75.cudafe1.cpp:(.text+0x2257): undefined reference to `cublasLtGetProperty'
/home/mahmood/cuda_10.1.168/bin/../targets/x86_64-linux/lib/libcublas_static.a(cublas.o): In function `cublasGetVersion_v2':
cublas.compute_75.cudafe1.cpp:(.text+0x484a): undefined reference to `cublasLtGetVersion'
/home/mahmood/cuda_10.1.168/bin/../targets/x86_64-linux/lib/libcublas_static.a(cublas.o): In function `cublasDestroy_v2':
cublas.compute_75.cudafe1.cpp:(.text+0x4fc9): undefined reference to `cublasLtShutdownCtx'
cublas.compute_75.cudafe1.cpp:(.text+0x5064): undefined reference to `free_gemm_select'
...

Based on my searches, it seems that library link order has to be correct. But I don’t know what is wrong with my order.

Any guess?