Como ligar o código de host a uma biblioteca estática CUDA após uma compilação separável?

Tudo bem, eu tenho uma pergunta muito preocupante do CUDA 5.0 sobre como vincular as coisas corretamente. Eu ficaria muito grato por qualquer ajuda!

Usando os recursos de compilação separáveis ​​do CUDA 5.0, gerei uma biblioteca estática (* .a). Isso liga muito bem com outros arquivos * .cu quando executado através do nvcc, eu fiz isso muitas vezes.

Agora gostaria de pegar um arquivo * .cpp e vinculá-lo ao código do host nessa biblioteca estática usando g ++ ou qualquer outra coisa, mas não o nvcc. Se eu tentar isso, eu recebo erros de compilador como

Referência indefinida para __cudaRegisterLinkedBinary

Estou usando os dois-lcuda e-lcudart e, a meu conhecimento, ter as bibliotecas na ordem correta (ou seja,-lmylib -lcuda -lcudart). Eu não acho que é um problema com isso. Talvez eu esteja errado, mas sinto que estou perdendo um passo e que preciso fazer outra coisa na minha biblioteca estática (link de dispositivo?) Antes de poder usá-lo com g + +.

Eu perdi algo crucial? Isso é possível?

Pergunta de bônus: Eu quero que o resultado final seja uma biblioteca dinâmica. Como posso conseguir isso?

questionAnswers(2)

yourAnswerToTheQuestion