You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Eclipse/Nsight使自动生成的objects.mk包含cufft库?

Fixing cuFFT Undefined Reference Errors in Auto-Generated Makefiles

Hey there, let's get that cuFFT linking issue sorted out! The root problem is exactly what you spotted: your build system isn't telling the linker to include the cuFFT library (-lcufft), which is why you're seeing those undefined reference errors for cufftPlan2d and cufftDestroy.

Here's how to fix it based on common build systems that auto-generate Makefiles:

1. If you're using CMake

CMake handles CUDA dependencies cleanly without hardcoding paths. Update your CMakeLists.txt with these lines:

# Locate the full CUDA Toolkit (includes cuFFT)
find_package(CUDAToolkit REQUIRED)

# Link cuFFT directly to your project target
target_link_libraries(your_project_name PRIVATE CUDA::cufft)

This automatically manages library paths and linking flags across different operating systems, so you don't have to manually add -lcufft or CUDA's library directory.

2. If you're using qmake (Qt projects)

Add this line to your project's .pro file:

LIBS += -lcufft

If your CUDA installation isn't in the system's default library path, specify the path first:

LIBS += -L/usr/local/cuda/lib64 -lcufft

(Adjust the path to match your CUDA install location—common paths are C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.X\lib\x64 on Windows.)

3. If you're using a custom Makefile template

If objects.mk is generated from a template (like Makefile.in), edit the template directly:

  • Find the line where LIBS := is defined
  • Modify it to:
    LIBS := -lcufft
    

If the template uses an EXTRA_LIBS variable for additional libraries, you can instead add:

EXTRA_LIBS += -lcufft

Then ensure the template combines this into the final LIBS line, e.g.:

LIBS := $(EXTRA_LIBS)

4. If you're using an IDE (Eclipse CDT, VS Code, etc.)

Most IDEs let you configure linker settings through a graphical interface:

  • Open your project's properties menu
  • Navigate to Linker > Libraries
  • Add cufft to the list of libraries to link
  • If needed, add your CUDA library path (e.g., /usr/local/cuda/lib64) to the Library search path section

Quick Verification

After making these changes, regenerate your Makefile (re-run CMake/qmake, or let your IDE refresh build files). Check objects.mk again—you should see LIBS := -lcufft (or similar) now. Recompile your project, and those undefined reference errors should disappear!

内容的提问来源于stack exchange,提问作者Kevinj22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:57:38