CUDAファイルを含むプログラムをコンパイルしようとするとエラーコードLNK2019が表示されますが、コードの先頭に関連するヘッダーファイルが含まれています。未解決の外部シンボル_parallel_managerが関数_mainで参照されています
私が有効ではありません(リンカエラーを取り除く)1つのファイルにこのプログラムですべてを含むようにするために十分に簡単だった以前のプログラムで#ifndef parallel_functions_cuh
#define parallel_functions_cuh
void
parallel_manager(image_chunk ***image_grid, network_chunk *** network_grid);
#endif
:全くの構成されてい
#include "parallel_functions.cuh"
オプション。
CUDAでこの特定のエラーが検出される唯一の参考資料はthis prior questionですが、そのソリューションは既に適用されており、すべてのライブラリが含まれています。
launch.c、kernel.cu、kernel.cuhからなる単純なプロジェクトでも同じエラーが発生します。
launch.c:
#include "kernel.cuh"
void main()
{
parallel_function();
}
kernel.cuh:
#ifndef kernel_cuh
#define kernel_cuh
void parallel_function();
#endif
kernel.cu:
1>------ Build started: Project: ErrorProject, Configuration: Debug Win32 ------
1> launch.c
1>launch.obj : error LNK2019: unresolved external symbol _parallel_function referenced in function _main
1>C:\Error\ErrorProject\Debug\ErrorProject.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
0:ビルドする以下の出力が得られます
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <stdio.h>
__global__ void kernel(char *a)
{
a[threadIdx.x] = threadIdx.x;
}
void parallel_function()
{
char* data;
cudaMallocManaged(&data, 256);
kernel<<<1, 256>>>(data);
cudaDeviceSynchronize();
for (int i = 0; i < 256; i++)
{
printf("%d ", data[i]);
}
cudaFree(data);
}
ビルドの依存関係は、リンカ設定のツールキットの依存関係とcudart.libを含め、デフォルトのCUDA V8.0ターゲットを使用
LNK2019 unresolved external symbol _parallel_function referenced in function _main
:さらに、これを含むエラーリストで
。
これはリンカエラーです。 'parallel_manager'の定義を含むこのプロジェクトに追加する必要のあるファイルがいくつかあります。そうしないと、その関数のコンパイルされたバージョンを含むオブジェクトまたはライブラリに対してプロジェクトをリンクする必要があります。関数宣言を提供するヘッダーファイルを含めるだけでは、リンク時エラーを回避するには不十分です。 'parallel_functions 'というファイルがあります。現在はあなたのプロジェクトの一部ではありませんが、そうする必要があります。 –
parallel_functions.cuは既にプロジェクトの一部です。 – Rain
これを実証する完全な例を見る必要があるかもしれません。このヘッダーファイル、ヘッダーファイル自体、およびparallel_functions.cuファイルを含むファイルだけを削除することができます。私はあなたがいくつかの窓を持っている可能性もあると確信していますVSプロジェクトの設定も干渉している。その場合、このエラーとそれに至るすべてのコンパイルコマンドを示す完全なVSコンソール出力を提供すると、 –